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.
Il vous faut ajouter la clé Oracle dans vos sources :
cd /tmp sudo wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle sudo apt-key add RPM-GPG-KEY-oracle
Puis, modifier les sources de mises à jour pour y ajouter le dépôt suivant :
deb http://oss.oracle.com/debian unstable main non-free
puis n'oubliez pas de recharger la liste des paquets.
Vous pouvez alors installer Oracle InstantClient (contenant accessoirement la commande sqlplus).
su - dd if=/dev/zero of=tmpswap bs=1M count=1000 chmod 600 tmpswap mkswap tmpswap swapon tmpswap
Installez les paquets php-pear php5-dev build-essential qui seront indispensables pour compiler l'extension, puis le paquet oracle-xe-client
Utilisez la commande pecl nouvellement installée, qui permet d'installer des extensions tierces à PHP :
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.
Il ne vous reste plus qu'à ajouter cette extension dans le fichier de configuration de PHP 5 pour Apache, à savoir /etc/php5/apache2/conf.d/oracle.ini
extension=oci8.so
Redémarrez enfin Apache 2 :
un reload ne suffit pas ?
sudo /etc/init.d/apache2 restart
Vous devez également ajouter cette extension dans le fichier de configuration de /etc/php5/cli/php.ini sans quoi l'extension oci8.so ne sera pas prise en compte si vous exécutez un script php en ligne de commande
Pour accéder à la commande sqlplus directement depuis votre interpréteur de commande, ajoutez dans le 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 défaut, l'installeur ne crée pas le tnsnames.ora. Alors, créez le fichier /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