2017-09-27 5 views
0

J'essaie d'installer OCI8 sur un serveur RedHat (RHEL7) pour mon serveur Apache. En ce moment, quand je tente de me connecter à mon serveur avec Symphony, je reçois cette erreur:Installation de OCI8: comment corriger l'erreur "Utilisation de la constante non définie OCI_COMMIT_ON_SUCCESS"?

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

Voici ce que je l'ai fait installer OCI8.

  1. Installation de RPM oracle-instantclient11.2 (devel et basic).
  2. Installation du paquet OCI8:

Pour plus d'informations, j'ai déjà sur mon serveur Oracle 12C mais je veux connecter mon application PHP à un autre serveur (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. Modifier php.ini pour ajouter extension=oci8.so.

J'ai trouvé ce thread et j'ai essayé de oci_connect utilisé et je reçois cette erreur:

Fatal error: Call to undefined function oci_connect()

Comment puis-je résoudre ce problème?


EDIT: Je viens de découvrir cette erreur dans 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

Répondre

0

Selon cette thread, l'avertissement de PHP est causée par un choc de la bibliothèque. Donc, je désinstalle complètement OCI8 manuellement et l'installe à nouveau. Mais, cette fois, je ne l'ai pas choisi la dernière version parce que je l'ai lu sur le site PECL:

Use 'pecl install oci8-2.0.12' to install for PHP 5.2 - PHP 5.6.

De plus, parce que je l'ai déjà une base de données Oracle sur mon serveur, je les commandes pour installer l'extension :

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 

maintenant, je peux trouver OCI8 énumérés dans ma page phpinfo.