【问题标题】:Error loading oci8.so with Ubuntu server 17.04 php 7 and apache2使用 Ubuntu 服务器 17.04 php 7 和 apache2 加载 oci8.so 时出错
【发布时间】:2017-12-26 07:04:23
【问题描述】:

我在一个Ubuntu Server 17.04上完成了下载Oracle Instant Client、SDK等的全过程。然后用外星人将rpm包转换为deb,安装,设置路径,下载pecl oci8,编译安装(w/o错误)等然后添加行:

extension=/usr/lib/php/20151012/oci8.so

然后重新启动。当我检查 /var/log/apache2/error.log 我看到:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/oci8.so' - libmql1.so: cannot open shared object file: No such file or directory in Unknown on line 0
[Thu Jul 20 10:46:44.352631 2017] [mpm_prefork:notice] [pid 23450] AH00163: Apache/2.4.25 (Ubuntu) configured -- resuming normal operations
[Thu Jul 20 10:46:44.352717 2017] [core:notice] [pid 23450] AH00094: Command line: '/usr/sbin/apache2'

有谁知道我可以做些什么来使它工作? 我想我没有启用 selinux 或者是权限问题?

谢谢

【问题讨论】:

  • 仅供参考,我已将 extension=/usr/lib/php/20151012/oci8.so 添加到 etc/php/7.0/cli/php.ini,然后执行 php --ri oci8 和一切都很好。我什至可以从命令行运行 .php 连接测试并且效果很好。 storage5.static.itmages.com/i/17/0721/…

标签: php oracle php-7 ubuntu-server oracle-call-interface


【解决方案1】:

解决办法是将ORACLE全局变量不要放在/etc/environment中,而是放在/etc/apache2/envvars中

所以,我在 /etc/apache2/envvars 的末尾添加了这两行

export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib
export ORACLE_HOME=/usr/lib/oracle/12.2/client64

一切都很好

【讨论】:

  • LD_LIBRARY_PATH 的导出显然是我所缺少的。这样做了,问题就消失了。谢谢+1
  • 这应该被标记为答案。由于某种原因,在 16.04 上不需要此步骤。
  • 这是正确的答案。也为我工作。
【解决方案2】:

由于您在使用上述解决方案时仍然会遇到相同的问题,因此最好添加一个包含以下内容的新文件 /etc/ld.so.conf.d/oracle.conf:

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

然后运行

sudo ldconfig

这种方式适用于 apache 和 php cli,您无需更改 /etc/apache2/envvars

【讨论】:

    【解决方案3】:

    使用 Linux Ubuntu 18,如果您收到相同的消息,但它的命令行版本: PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20170718/oci8' 在使用 php cli(= 命令行,而不是 php 作为 apache 模块)时,您只需在 /etc/environment 内部设置 LD_LIBRARY_PATH(不是 ORACLE_HOME),如下所示:

    export LD_LIBRARY_PATH=/opt/oracle/instantclient_12_2

    下次打开 shell 时,环境会声明这个变量。

    注意变量值需要指向包含lib*.so文件的文件夹。

    验证: 打开一个新的控制台,然后运行 php -m | grep oci8

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-20
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 2017-12-04
      • 2015-08-14
      • 1970-01-01
      相关资源
      最近更新 更多