安装OCI8:如何更正未定义常量OCI_COMMIT_ON_SUCCESS&QOOT的使用错误?

2022-04-16 00:00:00 redhat php oracle oci8
我正在尝试将OCI8安装在我的Apache服务器的RedHat服务器(RHEL7)上。 此时,当我尝试使用SYMPHONY连接到我的服务器时,收到以下错误:

异常"错误异常":使用未定义的常量OCI_COMMIT_ON_SUCCESS-假定为‘OCI_COMMIT_ON_SUCCESS’

以下是我安装OCI8所做的操作。

  1. 安装oracle11.2 rpm(开发版和基本版)。
  2. 安装OCI8包:

仅供参考,我的服务器上已经安装了Oracle 12C,但我想将我的PHP应用程序连接到另一台服务器(Oracle 11GR2)。

tar zxvf oci8-2.1.7.tgz
cd oci8-2.1.7
phpize
./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client64/lib --with-php-config=/opt/rh/rh-php56/root/usr/bin/php-config 
make
make install
  1. 编辑php.ini以添加extension=oci8.so

我找到了这个thread,我尝试使用oci_connect,但收到以下错误:

致命错误:调用未定义的函数oci_Connect()

如何更正此问题?


编辑:我刚在php_error.log中发现此错误:

[26-Sep-2017 16:14:12欧洲/巴黎]php警告:php启动:无法加载动态库‘/opt/rh/rh-php56/root/usr/lib64/php/modules/oci8.so’-/opt/rh/rh-php56/root/usr/lib64/php/modules/oci8.so:未定义符号:_emalloc_128位于第0行

php

根据thread,推荐答案警告是由库冲突引起的。所以,我完全手动卸载了OCI8,然后重新安装。但是,这一次,我没有选择最后的版本,因为我在PECL网站上阅读了:

使用‘PECL INSTALL oci8-2.0.12’安装 适用于PHP 5.2-PHP 5.6。

另外,因为我的服务器上已经有一个Oracle数据库,所以我使用这些命令来安装扩展:

tar zxvf oci8-2.0.12.tgz
cd oci8-2.0.12
phpize
./configure --with-oci8=shared,$ORACLE_HOME --with-php-config=/opt/rh/rh-php56/root/usr/bin/php-config 
make
make install

现在,我可以在我的phpinfo页面中找到列出的OCI8扩展。

相关文章