我正在尝试在我的Apache服务器的RedHat服务器(RHEL7)上安装OCI8。 此时,当我尝试使用Symphony连接到我的服务器时,出现此错误:
异常“ErrorException”:使用未定义的常量OCI_COMMIT_ON_SUCCESS - 假设为'OCI_COMMIT_ON_SUCCESS'
以下是我安装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
extension=oci8.so
。我发现了thread,我尝试使用oci_connect
并收到此错误:
致命错误:调用未定义的函数oci_connect()
如何更正此问题?
编辑:我刚在 php_error.log 中发现此错误:
[26-Sep-2017 16:14:12 Europe / Paris] 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行的未知中
答案 0 :(得分:1)
根据此thread,PHP警告是由库冲突引起的。所以,我完全卸载OCI8并再次安装。但是,这一次,我没有选择最后一个版本,因为我在PECL网站上看到了:
使用'pecl install oci8-2.0.12'进行安装 对于PHP 5.2 - PHP 5.6。
另外,因为我的服务器上已有Oracle数据库,所以我使用这些命令来安装扩展程序:
make_pizza('ham', 'extra meat', 'sweet con', 'pepperoni', size=17)
现在,我可以在我的phpinfo页面中找到OCI8扩展名。