在 OpenSUSE 上使用 PHP-FPM 安装 OCI8
Posted
技术标签:
【中文标题】在 OpenSUSE 上使用 PHP-FPM 安装 OCI8【英文标题】:Install OCI8 with PHP-FPM on OpenSUSE 【发布时间】:2017-08-25 11:40:00 【问题描述】:我正在尝试在 OpenSUSE 42.3 上使用 php-FPM 7 安装 OCI8,但未加载扩展。
我安装了 oracle-instantclient12.2-basic 和 带有 RPM 的 oracle-instantclient12.2-devel。 我用 pecl 安装了 oci8 php 扩展。 我在 php.ini 中添加了扩展。 我重新启动了 apache 和 php-fpm 服务。在日志中,出现下一个错误:
NOTICE: PHP message: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php7/extensions/oci8.so' - libmql1.so: cannot open shared object file: No such file or directory in Unknown on line 0
另外,我尝试了不同的解决方案,但没有任何效果:
选项 1:我将下一行添加到文件 /etc/sysconfic/apache2 并重新启动服务:
export LD_LIBRARY_PATH="/usr/lib/oracle/12.2/client64/lib"
export ORACLE_HOME="/usr/lib/oracle/12.2/client64"
选项 2:我将下一行添加到文件 /etc/php7/fpm/php-fpm.d/www.conf 并重新启动服务:
env[LD_LIBRARY_PATH] = /usr/lib/oracle/12.2/client64/lib:$LD_LIBRARY_PATH
env[ORACLE_HOME] = /usr/lib/oracle/12.2/client64
选项 3:我将下一行添加到文件 /etc/ld.so.conf.d/oracle.conf,我运行 ldconfig 并重新启动服务:
/usr/lib/oracle/12.2/client64/lib/
谁能帮帮我?
谢谢!
【问题讨论】:
对于您尝试的这三个“添加”解决方案,您究竟做了什么?细节很重要。 (您在执行最后一个之后确实运行了 ldconfig?) 嗨@ChristopherJones,我在问题描述中添加了更多详细信息。谢谢! 我会选择选项 3(并确保彻底撤消选项 1 和 2 以避免未来的混乱和冲突)。你有安装libaio吗? (您是如何安装 RPM 的?)不要忘记在使用 Instant Client 时您不应该/不需要设置 ORACLE_HOME。尝试在 libclntsh.so 文件上运行 ldd 并检查是否满足所有依赖项。 如果我只做第三个选项,它可以正常工作。谢谢@ChristopherJones。 【参考方案1】:要在 OpenSUSE 42.3 上使用 PHP-FPM 7 安装 OCI8,我们必须执行以下步骤:
使用 RPM 安装 oracle-instantclient12.2-basic 和 oracle-instantclient12.2-devel。 使用 pecl 安装 oci8 php 扩展。 为 php.ini 添加扩展。将下一行添加到文件 /etc/ld.so.conf.d/oracle.conf 并运行 ldconfig
/usr/lib/oracle/12.2/client64/lib/
重启apache和php-fpm服务。
【讨论】:
以上是关于在 OpenSUSE 上使用 PHP-FPM 安装 OCI8的主要内容,如果未能解决你的问题,请参考以下文章
如何在 OpenSuSE 11.2 上安装 Informix ClientSDK
如何在 openSUSE Tumbleweed 上安装 Aptana 3?