Php – SUSE 12.1 Apache startup after oci8 installation

opensusePHP

I have got a virtual server running opensuse 11.4 with apache, php, oracle instantclient, and oci installed through pecl.

The steps it took for me to have it up and running on 11.4 were:

# Install instantclient
rpm -Uvh oracle-instantclient11.2-basic-11.2.0.2.0.x86_64.rpm
rpm -Uvh oracle-instantclient11.2-devel-11.2.0.2.0.x86_64.rpm

# Install OCI8 through pecl
pecl install oci8

# add oci8 to modules
vi /etc/php5/conf.d/oci8.ini
extension=oci8.so

# add LD_LIBRARY_PATH to apache
vi /etc/sysconfig/apache2
# add to bottom of script
export LD_LIBRARY_PATH="/usr/lib/oracle/11.2/client64/lib"

# restart Apache
/etc/init.d/apache2 restart

Celebrating the same procedure on a fresh installation of OpenSUSE 12.1 results in apache throwing the following message at startup:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php5/extensions/oci8.so' - libnnz11.so: cannot open shared object file: No such file or directory in Unknown on line 0

I can't get any explanation, why it is working for 11.4 and in 12.1 it stops working.

Can someone please point me in the right direction..

Best Answer

I had the same problem also on openSUSE 12.1 but I did installed oci8 from source. I did a vendor change for php5 from openSUSE to obs (open build service):

openSUSE  -->  obs://build.opensuse.org/server:php

The vendor change also became with an upgrade of php from 5.3.8 to 5.3.17 wich is a nice feature. Then made a symlink for the libnnz11 (looks like the enviroment variable wasn't working for me):

ln -s /usr/lib/oracle/11.2/client/lib/libnnz11.so /usr/lib/libnnz11.so

and now the extension is recognized and is working fine. There is a bug reported with this issue if want to try the patch included in the config.m4 file generated by phpize but that didn't worked for me.