1. Download
Download Instant Client
https://gist.github.com/alexbonhomme/0d5976f2126bcde34b817e0143be0dff
- instantclient-basic
- instantclient-sqlplus
- instantclient-sdk
Download PHP Source
- php-x.y.z.tar.xz
Unzip all packages under ~/opt/
then get ~/opt/instantclient_V_R/
and ~/opt/php-x.y.z
2. Install OCI
. ~/src/bash/bash_profile.d/ora12c.sh
ln -s ~/opt/instantclient_V_R/sdk/include/*.h /usr/local/include/
ln -s ~/opt/instantclient_V_R/sqlplus /usr/local/bin/
ln -s ~/opt/instantclient_V_R/*.dylib /usr/local/lib/
ln -s ~/opt/instantclient_V_R/*.dylib.V.1 /usr/local/lib/
ln -s /usr/local/lib/libocci.dylib.V.1 /usr/local/lib/libocci.dylib
ln -s /usr/local/lib/libclntsh.dylib.V.1 /usr/local/lib/libclntsh.dylib
pecl install oci8
If the script prompt you to provide the path to ORACLE_HOME directory, respond with:
instantclient,/usr/local/lib
Bash Profile: ~/src/bash/bash_profile.d/ora12c.sh
# Oracle Instant CLient 12c
export ORACLE_HOME=${HOME}/opt/instantclient_12_2
export TNS_ADMIN=${ORACLE_HOME}/network/admin
export LD_LIBRARY_PATH=${ORACLE_HOME}:${LD_LIBRARY_PATH}
export PATH=${PATH}:${ORACLE_HOME}
TNS Config: ${TNS_ADMIN}/tnsnames.ora
DBT1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = a.b.c.d)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dbt1)
)
)
sqlplus USERNAME/PASSWORD@DBT1
3. Install PDO_OCI (by PECL)
cd ~/opt/php-7.2.5/ext/pdo_oci
phpize
./configure --with-pdo-oci=instantclient,/usr/local/lib,12.2
ls /usr/local/lib/php/pecl/20170718/
4. Config PHP Extensions
/usr/local/etc/php/7.2/conf.d/ext-oci8.ini
extension=oci8.so
extension=pdo_oci.so
5. Restart PHP Service
brew services restart php