【问题标题】:PHP not recognizing where oci8.so was installedPHP 无法识别 oci8.so 的安装位置
【发布时间】:2017-07-10 18:55:41
【问题描述】:

我正在尝试使用 PHP 7.1 安装 oci8。我按照这里的说明进行操作:http://www.oracle.com/technetwork/articles/technote-php-instant-084410.html

我有:

  • debian 8.8
  • php 7.1
  • 安装在 /opt/instantclient_12_2 中的即时客户端
  • pecl install oci8 正确安装,安装过程如下结束(使用instantclient,/opt/instantclient_12_2):

    Build process completed successfully
    Installing '/usr/lib/php/20151012/oci8.so'
    install ok: channel://pecl.php.net/oci8-2.1.4
    configuration option "php_ini" is not set to php.ini location
    You should add "extension=oci8.so" to php.ini
    

我也在 php.ini 中启用了扩展。当我尝试执行php -i 时,我得到以下信息:

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

oci8.so 是 20151012 而不是 20160303。我尝试了符号链接,只是将其移动,但它检测到它不是针对该格式编译的,也不喜欢那样。

我错过了什么?我怎样才能让这一切玩得很好?

我在 cli 和 apache php.ini 文件之间进行了相同的更改。

提前致谢。

【问题讨论】:

  • 可能oci8 pecl 扩展还不支持 PHP 7.1(PHP 7.1 的扩展绑定与 PHP 7.0 不同,因此需要专门为 PHP 7.1 编译的版本)。你能用 PHP 7.0 试试这个扩展吗?

标签: php oci8 debian-jessie instantclient


【解决方案1】:

PECL 上的 PHP OCI8 支持 PHP 7(和旧版本 - 请参阅 PECL 页面以在旧 PHP 版本上安装)。

尝试卸载 OCI8。

检查您没有多个版本的 PHP - 路径名称差异让我认为您有。

【讨论】:

  • 谢谢你,克里斯——你的预感是正确的。我安装了多个版本的 PHP。对于将来发现此问题的任何其他人,我需要安装 php-dev 以便它包含 phpize,这是安装 oci8 所必需的。
  • 那么,我应该只安装 php7.0(而不是 php-cli 等)而不是安装 php7.0?我也有同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-08
  • 2011-08-10
相关资源
最近更新 更多