How to install OCI8 on Ubuntu 20.01 and PHP 7.4

Source: http://www.syahzul.com/2016/04/06/how-to-install-oci8-on-ubuntu-14-04-and-php-5-6/

Source: https://medium.com/@kabeza/setup-oracle-instant-client-with-apache-and-php-7-on-ubuntu-server-17-04-66cea2297d6f

Source: https://gist.github.com/hewerthomn/81eea2935051eb2500941a9309bca703#file-install_oci8_ubuntu_16-04_php7-1-md

Install Oracle Instant Client and SDK

Step 1

Download the Oracle Instant Client and SDK from Oracle website. (Need to login in Oracle page)

http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

Files: instantclient-basic-linux.x64-12.2.0.1.0.zip and instantclient-sdk-linux.x64-12.2.0.1.0.zip.

Step 2

Create a new folder to store Oracle Instant Client zip files on your server.

Upload the Instant Clients files inside this folder.mkdir /opt/oracle

Step 3

Now we need to extract the files.cd /opt/oracle unzip instantclient-basic-linux.x64-12.2.0.1.0.zip unzip instantclient-sdk-linux.x64-12.2.0.1.0.zip

Step 4

Next, we need to create a symlink to Instant Client files.ln -s /opt/oracle/instantclient_12_2/libclntsh.so.12.1 /opt/oracle/instantclient_12_2/libclntsh.so ln -s /opt/oracle/instantclient_12_2/libocci.so.12.1 /opt/oracle/instantclient_12_2/libocci.so

Step 5

Add the folder to our ldconfig.echo /opt/oracle/instantclient_12_2 > /etc/ld.so.conf.d/oracle-instantclient

Step 6

Update the Dynamic Linker Run-Time Bindingsldconfig

Done. Now we can proceed to the next part.

Install Additional Packages

To install the OCI8 extension, we need to install some additional package on our server.

Step 1

Run these command:apt-get install php-dev php-pear build-essential libaio1

Step 2

Once installed, we need to get the OCI8 file. But, before that we need to update PECL channel.pecl channel-update pecl.php.net

Then.pecl install oci8

When you are prompted for the Instant Client location, enter the following:instantclient,/opt/oracle/instantclient_12_2

Step 3

We need to tell PHP to load the OCI8 extension.echo “extension =oci8.so” >> /etc/php/7.4/fpm/php.ini echo “extension =oci8.so” >> /etc/php/7.4/cli/php.ini echo “extension =oci8.so” >> /etc/php/7.4/apache2/php.ini

We also need to add on apache those environment variables.echo “export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2” >> /etc/apache2/envvars echo “export ORACLE_HOME=/opt/oracle/instantclient_12_2” >> /etc/apache2/envvars echo “LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2:$LD_LIBRARY_PATH” >> /etc/environment

Step 4

Refresh the server. If you are accessing through SSH, thenexit

orsudo shutdown -r now

Check if the extension is enabled.php -m | grep ‘oci8’

If returns oci8, its works!

Step 5

Restart the PHP-FPMservice php7.4-fpm restart

Now you can connect to Oracle DBMS from your PHP applications.

Leave a Comment