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

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

问题描述:

我想为我的Apache服务器在RedHat服务器(RHEL7)上安装OCI8。 在这一刻,当我尝试连接到我的服务器交响曲,我得到这个错误:安装OCI8:如何更正“使用未定义的常量OCI_COMMIT_ON_SUCCESS”错误?

Exception "ErrorException" : Use of undefined constant OCI_COMMIT_ON_SUCCESS - assumed 'OCI_COMMIT_ON_SUCCESS'

这里是我做的安装OCI8。

  1. 安装oracle-instantclient11.2 RPMs(devel and basic)。
  2. 安装OCI8包装:

有关信息,我已经有一个Oracle 12C我的服务器上,但我想我的PHP应用程序连接到另一台服务器(甲骨文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
  1. 编辑的php.ini。
  2. 我发现这个thread,我试图用oci_connect和我得到这个错误:

    Fatal error: Call to undefined function oci_connect()

    我怎样才能解决这个问题?


    编辑:我刚刚发现这个错误php_error.log

    [26-Sep-2017 16:14:12 Europe/Paris] PHP Warning: PHP Startup: Unable to load dynamic library '/opt/rh/rh-php56/root/usr/lib64/php/modules/oci8.so' - /opt/rh/rh-php56/root/usr/lib64/php/modules/oci8.so: undefined symbol: _emalloc_128 in Unknown on line 0

开始=>

根据这一thread,PHP的警告是由库冲突造成的。所以,我完全手动卸载OCI8并重新安装。但是,这一次,我没有选择的最后一个版本,因为我在PECL网站阅读:

Use 'pecl install oci8-2.0.12' to install for 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扩展。