Source: http://www.syahzul.com/2016/04/06/how-to-install-oci8-on-ubuntu-14-04-and-php-5-6/
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.
Create a new folder to store Oracle Instant Client zip files on your server.
Upload the Instant Clients files inside this folder.
mkdir /opt/oracleNow 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.zipNext, 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.soAdd the folder to our ldconfig.
echo /opt/oracle/instantclient_12_2 > /etc/ld.so.conf.d/oracle-instantclientUpdate the Dynamic Linker Run-Time Bindings
ldconfigDone. 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-get install php-dev php-pear build-essential libaio1Once 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 oci8When you are prompted for the Instant Client location, enter the following:
instantclient,/opt/oracle/instantclient_12_2We 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
echo "extension =oci8.so" >> /etc/php/7.2/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/environmentRefresh the server. If you are accessing through SSH, then
exitor
sudo shutdown -r nowCheck if the extension is enabled.
php -m | grep 'oci8'If returns oci8, its works!
Restart the PHP-FPM
service php7.2-fpm restartNow you can connect to Oracle DBMS from your PHP applications.
I was able to install OCI8 following this guide, but the package from Oracle needs to be updated.
OCI8 needs libaio1 module and it is discontinued on Ubuntu 24.04, replaced by libaio1t64 but there's no 'transitional' package for libaio1 -> libaio1t64, or connection to the previous module.
https://askubuntu.com/questions/1512196/libaio1-on-noble
I've created a symlink and it worked, but Oracle should be making this new library compatible.