SUSE 12.1 oci8 安装后 Apache 启动

SUSE 12.1 oci8 安装后 Apache 启动

我有一个运行 opensuse 11.4 的虚拟服务器,其中通过 pecl 安装了 apache、php、oracle instantclient 和 oci。

我在 11.4 上启动并运行它所采取的步骤如下:

# 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

在全新安装的 OpenSUSE 12.1 上执行相同的过程会导致 apache 在启动时抛出以下消息:

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

我无法得到任何解释,为什么它在 11.4 中工作,而在 12.1 中它停止工作。

有人可以给我指明正确的方向吗?

答案1

我在 openSUSE 12.1 上也遇到了同样的问题,但我确实从来源。我将 php5 的供应商从 openSUSE 更改为 obs (开放构建服务):

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

供应商变更也随着 php 从 5.3.8 升级到 5.3.17 而发生,这是一个不错的功能。然后为 libnnz11 创建了一个符号链接(看起来环境变量对我来说不起作用):

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

现在扩展已被识别并正常工作。有一个漏洞如果想尝试由生成的 config.m4 文件中包含的补丁,则会报告此问题,phpize但这对我来说不起作用。

相关内容