2017-08-25 62 views
0

我想在OpenSUSE 42.3上使用PHP-FPM 7安装OCI8,但扩展没有加载。在OpenSUSE上安装使用PHP-FPM的OCI8

  • 我用RPM安装了oracle-instantclient12.2-basic和 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:我加入了下一行的文件/等/ 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和我RES tarted服务:

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/ 

任何人都可以帮助我吗?

谢谢你!

+0

你对这三种“添加”解决方案做了什么?细节很重要。 (在你做完最后一个之后,你确实运行了ldconfig?) –

+0

Hi @ChristopherJones,我在问题描述中添加了更多细节。谢谢! – cbccharlie

+0

我会选择3(并确保干净地撤消选项1和2以避免未来的混淆和冲突)。你有安装libaio吗? (您是如何安装RPM的?)不要忘记,使用Instant Client时不应/不需要设置ORACLE_HOME。尝试在libclntsh.so文件上运行ldd并检查是否符合所有依赖关系。 –

回答

0

对于在openSUSE 42.3安装使用PHP-FPM 7 OCI8,我们必须做下面的步骤:

  • 安装Oracle-instantclient12.2 - 基本和Oracle-instantclient12.2-devel的使用RPM。
  • 用pecl安装oci8 php扩展。
  • 将扩展名添加到php.ini。
  • 下一行添加到该文件/etc/ld.so.conf.d/oracle.conf和运行ldconfig

    /usr/lib/oracle/12.2/client64/lib/

  • 重新启动apache和php-fpm服务。

相关问题