Source: How to install OCI8 on Ubuntu 16.04 and PHP 7.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-18.3.0.0.0dbru.zip
and instantclient-sdk-linux.x64-18.3.0.0.0dbru.zip
.
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
Now we need to extract the files.
unzip instantclient-basic-linux.x64-18.3.0.0.0dbru.zip -d /opt/oracle
unzip instantclient-sdk-linux.x64-18.3.0.0.0dbru.zip -d /opt/oracle
Add the folder to our ldconfig
.
echo /opt/oracle/instantclient_18_3 > /etc/ld.so.conf.d/oracle-instantclient
Update the Dynamic Linker Run-Time Bindings
ldconfig
Done. Now we can proceed to the next part.
To install the OCI8 extension, we need to install some additional package on our server.
Run these command:
apt install php-dev php-pear build-essential libaio1
Once installed, we need to get the OCI8 file.
pecl install oci8
When you are prompted for the Instant Client location, enter the following:
instantclient,/opt/oracle/instantclient_18_3
We need to tell PHP to load the OCI8 extension.
echo "extension = oci8.so" >> /etc/php/7.2/fpm/php.ini
echo "extension = oci8.so" >> /etc/php/7.2/cli/php.ini
Add the following lines to /etc/apache2/envvars
export LD_LIBRARY_PATH=/opt/oracle/instantclient_18_3
export ORACLE_HOME=/opt/oracle/instantclient_18_3
Check if the extension is enabled.
php -m | grep 'oci8'
If returns oci8
, its works!
Restart the PHP-FPM
service php7.2-fpm restart
Now you can connect to Oracle DBMS from your PHP applications.