Ceci est une ancienne révision du document !
OCI8 : extension PHP pour les connexions avec Oracle
Introduction
OCI8 est le nom de l'extension PHP permettant à ce langage Web de communiquer avec les bases de données Oracle de versions supérieures ou égales à 8.
Récuperation des sources
Pour cela, vous allez avoir besoin du dépôt de paquets Oracle dans votre fichier /etc/apt/sources.list
deb http://oss.oracle.com/debian unstable main non-free
Effectuez la commande suivante pour mettre à jour vos sources, puis installez le paquet Oracle InstantClient (contenant accessoirement la commande sqlplus).
Attention : Le paquet demande un minimum de 1024 Mo de swap. Il ne seront pas utilisé, mais ils sont cependant indispensable pour l'installer.
Pour ajouter temporairement 1024Mo
su - dd if=/dev/zero of=tmpswap bs=1M count=1000 chmod 600 tmpswap mkswap tmpswap swapon tmpswap
sudo apt-get update sudo apt-get install oracle-xe-client
Pour éviter les erreurs genre : GPG error: Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 2E2BCDBCB38A8516, il faut ajouter la clé Oracle dans apt :
cd /tmp sudo wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle sudo apt-key add RPM-GPG-KEY-oracle
Les paquets suivants seront également indispensable pour compiler l'extension :
sudo apt-get install php-pear php5-dev build-essential
Compiler et installer OCI8
Utilisez la commande nouvellement installée pecl, qui permet d'installer des extensions tierces à PHP. Si le serveur est déconnecté d'Internet, téléchargez l'extension OCI8 pecl à l'adresse suivante: http://pecl.php.net/package/oci8 et remplacez "oci8" par "oci8-XXXX.tgz" dans la commande suivante.
sudo pecl install oci8
L'assistant vous posera une question sur l'emplacement des bibliothèques Oracle (OCI8-LIB). Vous répondrez tout d'abord all, puis il vous reposera la question et vous répondrez :
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client
Puis Entrée. Enfin, appuyez encore une fois sur Entrée pour confirmer. Le processus de compilation devrait alors se passer convenablement et vous informer de sa réussite.
Configurer apache
Il ne vous reste plus qu'à ajouter cette extension dans le fichier de configuration de PHP 5, à savoir /etc/php5/apache2/php.ini
extension=oci8.so
Redémarrez enfin Apache 2 :
sudo /etc/init.d/apache2 restart
SQLPLUS par l'interpréteur de commande
Pour accéder à la commande sqlplus directement depuis votre interpréteur de commande, ajoutez au fichier /etc/environment le chemin suivant au $PATH :
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin"
Par default, l'installeur ne crée pas le tnsnames.ora. Alors, creez /etc/tnsnames.ora à la main, par exemple comme ceci:
EXEMPLE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dbserveur-distant )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = EXEMPLE) ) )
faites un test
sqlplus login_du_serveur_distant/mot_de_passe_du_serveur_distant@EXEMPLE
Contributeurs: