|
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +# Exit immediately if a command exits with a non-zero status. |
| 4 | +set -e |
| 5 | + |
| 6 | +ORACLE_DIR="/opt/oracle/instantclient" |
| 7 | + |
| 8 | +# Remove existing files if they exist |
| 9 | +[ -f "instantclient-basic-linuxx64.zip" ] && rm "instantclient-basic-linuxx64.zip" |
| 10 | +[ -f "instantclient-sdk-linuxx64.zip" ] && rm "instantclient-sdk-linuxx64.zip" |
| 11 | + |
| 12 | +# Download Oracle Instant Client basic package |
| 13 | +curl -kL "https://download.oracle.com/otn_software/linux/instantclient/instantclient-basic-linuxx64.zip" > "instantclient-basic-linuxx64.zip" |
| 14 | + |
| 15 | +# Download Oracle Instant Client SDK package |
| 16 | +curl -kL "https://download.oracle.com/otn_software/linux/instantclient/instantclient-sdk-linuxx64.zip" > "instantclient-sdk-linuxx64.zip" |
| 17 | + |
| 18 | +# Unzip the downloaded files |
| 19 | +echo "Unzipping downloaded files..." |
| 20 | +unzip -o instantclient-basic-linuxx64.zip |
| 21 | +unzip -o instantclient-sdk-linuxx64.zip |
| 22 | + |
| 23 | +# Create Oracle directory |
| 24 | +echo "Creating Oracle directory..." |
| 25 | +mkdir -p $ORACLE_DIR |
| 26 | + |
| 27 | +# Move Instant Client to the Oracle directory |
| 28 | +echo "Moving Instant Client to the Oracle directory..." |
| 29 | +mv instantclient*/* $ORACLE_DIR |
| 30 | +ls -la $ORACLE_DIR |
| 31 | + |
| 32 | +# Create symbolic links |
| 33 | +echo "Creating symbolic links..." |
| 34 | +ln -sf $ORACLE_DIR/libclntsh.so.12.1 $ORACLE_DIR/libclntsh.so |
| 35 | +ln -sf $ORACLE_DIR/libocci.so.12.1 $ORACLE_DIR/libocci.so |
| 36 | + |
| 37 | +# Configure dynamic linker run-time bindings |
| 38 | +echo "Configuring dynamic linker run-time bindings..." |
| 39 | +echo $ORACLE_DIR | tee /etc/ld.so.conf.d/oracle-instantclient.conf |
| 40 | +ldconfig |
| 41 | + |
| 42 | +# Install OCI8 for PHP 8.2 |
| 43 | +echo "Installing OCI8 extension for PHP 8.2..." |
| 44 | +/usr/bin/expect <<EOF |
| 45 | +set timeout 60 |
| 46 | +spawn pecl install oci8-3.2.1 |
| 47 | +expect "Please provide the path to the ORACLE_HOME directory" |
| 48 | +send "instantclient,/opt/oracle/instantclient\r" |
| 49 | +expect eof |
| 50 | +EOF |
| 51 | + |
| 52 | +echo "Oracle Instant Client and OCI8 installation completed." |
0 commit comments