I have gone through the whole process of downloading Oracle instant client, SDK, etc. in a Ubuntu Server 17.04. Then converted rpm packages to deb with alien, installed, set
With Linux Ubuntu 18, if you're getting the same message, but its command line version:
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20170718/oci8'
when using php cli (= command line, as opposed to php as an apache module), all you need to do is to set LD_LIBRARY_PATH
(not ORACLE_HOME), inside of /etc/environment
, as shown below:
export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2
Next time you open a shell, the environment will declare this variable.
Note that the variable value needs to point to the folder that contains the lib*.so files.
Verification:
open a new console, and run
php -m | grep oci8
The solution is to put the ORACLE global variables NOT in /etc/environment but in the /etc/apache2/envvars
So, I've added these 2 lines at the end of /etc/apache2/envvars
export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
And all working great
As you still will have the same problem with php cli with the above solution, it would be better to add a new file /etc/ld.so.conf.d/oracle.conf with this content:
/usr/lib/oracle/12.2/client64/lib
Then run
sudo ldconfig
This way it works for apache and php cli and you do not need to change /etc/apache2/envvars