L’extension OCI8 permet ajoute à php des fonctionnalités permettant de communiquer avec une base Oracle.
OCI8 n’est pas fourni de base avec php, il convient de l’installer manuellement.
Avant toute chose, nous allons installer apache-php :
yum install php php-devel httpd /etc/init.d/httpd start
Nous créons ensuite un fichier /var/www/html/phpinfo.php contenant :
<?php
phpinfo();
?>
Cette page est donc accessible depuis l'adresse http://127.0.0.1/phpinfo.php
Il faut ensuite télécharger et décompresser l'extension oci8 pour php :
wget http://pecl.php.net/get/oci8-1.4.5.tgz tar zxf oci8-1.4.5.tgz
Pour installer l'extension OCI8, deux cas de figures peuvent se présenter. Soit la machine possède déjà un serveur oracle configuré (cf article sur l'installation d'un serveur oracle) soit la machine ne possède pas de serveur oracle local et devra accéder à un serveur oracle distant.
Si un serveur oracle local est installé :
cd oci8-1.4.5 phpize ./configure --with-oci8=shared,$ORACLE_HOME make make install
Si aucun serveur oracle n'est présent sur la machine :
Il faut alors installer oracle_instantclient. Nous choisirons la version 11.2-basic et 11.2-devel en rpm depuis cette page
rpm -ivh oracle-instantclient11.2-basic-11.2.0.2.0.i386.rpm rpm -ivh oracle-instantclient11.2-devel-11.2.0.2.0.i386.rpm
Nous pouvons maintenant compiler l'extension OCI8 :
cd oci8-1.4.5 phpize ./configure --with-oci8=shared,instantclient,/usr/lib/oracle/11.2/client/lib make make install
Configuration de php
Cette étape est commune aux deux méthodes d'installation précédentes.
Ajouter au fichier /etc/php.ini la ligne :
extension=oci8.so
et redémarrer le serveur apache :
/etc/init.d/httpd restart
Maintenant, en allant sur la page http://127.0.0.1/phpinfo.php, vous devez avoir une section oci8 de ce style :
Merci pour ce post, il m’a été extrêmement utile !
Tout c est bien passe sauf pour les tests
Simple connexion au serveur Oracle
Warning: ocilogon(): ORA-24408: could not generate unique server group name
J ai la centos 6.2 en 64 avec Oracle XE 11 g sur un autre serveur.
Le serveur web c est httpd comme dans le tuto
J ai regarde sur le net apparement faudrait downgrader.
Vous pensez que c est ce qu il y a de mieux a faire
Excellent article merci !
– La procédure est également valide pour CentOS 6
– Si système x64 alors le oracle_instantclient est disponible ici : http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
Bonjour j’ai configuré oci8 sous centos. quand je lance phpinfo() je vois que le oci8 est activé mais je n’arrive pas à accéder à la base de données.
Merci d’avance