安装OCI8:如何更正未定义常量OCI_COMMIT_ON_SUCCESS&QOOT的使用错误?
我正在尝试将OCI8安装在我的Apache服务器的RedHat服务器(RHEL7)上。
此时,当我尝试使用SYMPHONY连接到我的服务器时,收到以下错误:
异常"错误异常":使用未定义的常量OCI_COMMIT_ON_SUCCESS-假定为‘OCI_COMMIT_ON_SUCCESS’
以下是我安装OCI8所做的操作。
- 安装oracle11.2 rpm(开发版和基本版)。
- 安装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
- 编辑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扩展。
相关文章