php oci8模块未加载(ubuntu 16)

时间:2016-12-04 09:07:07

标签: php apache ubuntu module oci8

我有一个问题oci8模块未加载。

操作系统是Ubuntu 16,Apache 2.4和PHP 5.6

我执行以下步骤:

  • 我下载了Oracle Instant Client Basic和SDK包: (oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm, oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm)
  • 安装Oracle Instant Client(将.rpm转换为.deb后)
  • 从PECL下载OCI8扩展(oci8-2.0.12)
  • 构建PHP OCI8模块
  • 将oci8.so复制到模块目录(/ usr / lib / php / 20131226 /)
  • 编辑php.ini文件并添加完整路径的扩展名(extension = / usr / lib / php / 20131226 / oci8.so)
  • 我将oracle库路径添加到环境变量LD_LIBRARY_PATH = / usr / lib / oracle / 11.2 / client / lib
  • 重启Apache

未加载模块,Apache日志显示以下错误:

  

无法加载动态库'/usr/lib/php/20131226/oci8.so' -   libaio.so.1:无法打开共享对象文件:没有这样的文件或目录   在第0行的未知中

2 个答案:

答案 0 :(得分:1)

问题来自libaio.so库,因为@Alexandre说,它是32/64位不匹配。

我从@Codo回答问题:https://stackoverflow.com/a/10619763/1995358

再次安装libaio.so库后问题解决了:

sudo apt-get install libaio1

答案 1 :(得分:0)

确保在Apache找到它的位置设置LD_LIBRARY_PATH,可能是Apache的envvars文件。或者,如果计算机上没有任何其他Oracle软件,则可以更新ldconfig。免费Underground PHP & Oracle Manual

中有大量信息

有几个问题:为什么不使用12.1 Instant Client?这样,您就可以连接到Oracle DB 10.2及更高版本。

另外,为什么要转换RPM然后将输出移动到用户目录?为什么不直接下载Instant Client zip文件并将其解压缩?您需要做的就是添加下载页面说明中提到的sym链接。