Install Oracle PHP PDO Driver
Instructions for installing Oracle PHP PDO driver on CentOS/RHEL
Download Oracle InstantClient RPM files here. Put these files in your server. Download the basic and devel packages.
Basic: oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
Devel: oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
Install the downloaded rpm files:
$ sudo rpm -ivh oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
$ sudo rpm -ivh oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
$ sudo ln -s /usr/include/oracle/12.1/client64 /usr/include/oracle/12.1/client
$ sudo ln -s /usr/lib/oracle/12.1/client64 /usr/lib/oracle/12.1/client
Create a file inside /etc/profile.d
named oracle.sh
and put this as the content:
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib
And run it so we’ll have LD_LIBRARY_PATH
as an environment variable.
source /etc/profile.d/oracle.sh
Download the PDO_OCI source using pecl.
$ pecl download PDO_OCI
$ tar -xvf PDO_OCI-1.0.tgz
$ cd PDO_OCI-1.0
Inside the PDO_OCI-1.0 folder, edit the file named config.m4
.
Find a pattern like this near line 10 and add these 2 lines:
elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.12.1; then
PDO_OCI_VERSION=12.1
Find a pattern like this near line 101 and add these lines:
12.1)
PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD)
;;
Build and install the extension.
$ phpize
$ ./configure --with-pdo-oci=instantclient,/usr,12.1
$ make
$ sudo make install
If you see the compilation error:
"pdo_oci.c:34: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘pdo_oci_functions’"
To solve it just change function_entry
to zend_function_entry
around line 34.
To enable the extension, add a file named pdo_oci.ini
under /etc/php.d
and put this as the content:
extension=pdo_oci.so
Validate that it was successfully installed.
$ php -i | grep oci
You should see something like this in the output:
/etc/php.d/pdo_oci.ini,
PDO drivers => oci, odbc, sqlite