Install PHP OCI8 and Oracle InstantClient In CWP/Centos 8/Centos 7

In this tutorial I’ll show you how to Install OCI8 php extension in CWP/Centos8/Centos7. This OCI8 extension lets you access Oracle Database.

These functions allow you to access Oracle Database. They support SQL and PL/SQL statements. Basic features include transaction control, binding of PHP variables to Oracle placeholders, and support for large object (LOB) types and collections. Oracle’s scalability features such as Database Resident Connection Pooling (DRCP) and result caching are also supported.

For el8/Centos 8/stream/Rocky/Almalinux :

First download the required Oracle instantclient packages :

cd /usr/local/src
wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-basic-21.5.0.0.0-1.el8.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-sqlplus-21.5.0.0.0-1.el8.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-devel-21.5.0.0.0-1.el8.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-jdbc-21.5.0.0.0-1.el8.x86_64.rpm

Second Installation :

cd /usr/local/src
dnf localinstall oracle* --nogpgcheck

For el7/Centos 7:

First download the required Oracle instantclient packages :

cd /usr/local/src
wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-basic-21.5.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-devel-21.5.0.0.0-1.x86_64.rpm
wget https://download.oracle.com/otn_software/linux/instantclient/215000/oracle-instantclient-jdbc-21.5.0.0.0-1.x86_64.rpm

Second Installation :

cd /usr/local/src
yum localinstall oracle* --nogpgcheck

Now install OCI8 php extension :

Now you need to install oci8 php extension via below process, please note the versions for oci8 are sensitive with the php version.

For php switcher :

php 7.x :

cd /usr/local/src
wget https://pecl.php.net/get/oci8-2.2.0.tgz
tar -zxvf oci8-2.2.0.tgz
cd oci8-2.2.0
phpize
./configure
make && make install

php 8.0 (only):

cd /usr/local/src
wget https://pecl.php.net/get/oci8-3.0.1.tgz
tar -zxvf oci8-3.0.1.tgz
cd oci8-3.0.1
phpize
./configure
make && make install

php 8.1 (only):

cd /usr/local/src
wget https://pecl.php.net/get/oci8-3.2.1.tgz
tar -zxvf oci8-3.2.1.tgz
cd oci8-3.2.1
phpize
./configure
make && make install

Now add this line at the end of this file /usr/local/php/php.ini :

extension=oci8.so

Now you can check the phpinfo there you can see oci8 is now enabled.

For php selector and php-fpm if you need to install oci8 for php 7.4 then replace phpize and ./configure with :

**change 74 to 80 for php 8.0 or to 81 for php 8.1

For php selector 7.4 :

/opt/alt/php74/usr/bin/phpize
./configure --with-php-config=/opt/alt/php74/usr/bin/php-conf

For php-fpm 7.4:

/opt/alt/php-fpm74/usr/bin/phpize
./configure --with-php-config=/opt/alt/php-fpm74/usr/bin/php-config

example :

cd /usr/local/src
wget https://pecl.php.net/get/oci8-2.2.0.tgz
tar -zxvf oci8-2.2.0.tgz
cd oci8-2.2.0
/opt/alt/php74/usr/bin/phpize
./configure --with-php-config=/opt/alt/php74/usr/bin/php-config
make && make install

and then add this line in php.ini :

extension=oci8.so

**restart php-fpm service or stop the php service and start it from cwp php-fpm module.

Back to top button