| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| oci8 [Le 10/07/2007, 10:38] – ajout d'un test de fonctionnement sph92 | oci8 [Le 10/10/2009, 05:16] (Version actuelle) – YannUbuntu |
|---|
| | {{tag>serveur réseau php}} |
| | ---- |
| |
| | ====== OCI8 : extension PHP pour les connexions avec Oracle ====== |
| | |
| | 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. |
| | |
| | ===== Ajout des sources logicielles ===== |
| | |
| | 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, [[:tutoriel:comment_modifier_sources_maj#modifier les sources de mises à jour]] pour y ajouter le dépôt suivant : |
| | |
| | <file>deb http://oss.oracle.com/debian unstable main non-free</file> |
| | |
| | puis n'oubliez pas de [[:tutoriel:comment_modifier_sources_maj#recharger la liste des paquets]]. |
| | |
| | Vous pouvez alors installer// Oracle InstantClient// (contenant accessoirement la commande //sqlplus//). |
| | |
| | <note tip>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 <code>su - |
| | dd if=/dev/zero of=tmpswap bs=1M count=1000 |
| | chmod 600 tmpswap |
| | mkswap tmpswap |
| | swapon tmpswap</code></note> |
| | |
| | [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **php-pear php5-dev build-essential** qui seront indispensables pour compiler l'extension, puis le paquet **oracle-xe-client** |
| | |
| | ===== Compiler et installer OCI8 ===== |
| | |
| | Utilisez la commande **pecl** nouvellement installée, qui permet d'installer des extensions tierces à PHP : |
| | sudo pecl install oci8 |
| | |
| | <note help>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 précédente.</note> |
| | |
| | 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 : |
| | <file>/usr/lib/oracle/xe/app/oracle/product/10.2.0/client</file> |
| | |
| | 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'à [[:tutoriel:comment_editer_un_fichier|ajouter]] cette extension dans le fichier de configuration de PHP 5 pour Apache, à savoir **/etc/php5/apache2/conf.d/oracle.ini** |
| | |
| | <file>extension=oci8.so</file> |
| | |
| | Redémarrez enfin Apache 2 : |
| | >FIXME un reload ne suffit pas ? |
| | |
| | sudo /etc/init.d/apache2 restart |
| | |
| | Vous devez également [[:tutoriel:comment_editer_un_fichier|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 |
| | |
| | ===== SQLPLUS par l'interpréteur de commande ===== |
| | |
| | Pour accéder à la commande **sqlplus** directement depuis votre interpréteur de commande, [[:tutoriel:comment_editer_un_fichier|ajoutez dans le fichier]] **/etc/environment** le chemin suivant au **$PATH** : |
| | <file>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"</file> |
| | |
| | Par défaut, l'installeur ne crée pas le **tnsnames.ora**. Alors, [[:tutoriel:comment_editer_un_fichier|créez le fichier]] **/etc/tnsnames.ora** à la main, par exemple comme ceci : |
| | <file> |
| | EXEMPLE = |
| | (DESCRIPTION = |
| | (ADDRESS_LIST = |
| | (ADDRESS = (PROTOCOL = TCP)(HOST = dbserveur-distant )(PORT = 1521)) |
| | ) |
| | (CONNECT_DATA = |
| | (SERVICE_NAME = EXEMPLE) |
| | ) |
| | ) |
| | </file> |
| | |
| | faites un test : |
| | |
| | sqlplus login_du_serveur_distant/mot_de_passe_du_serveur_distant@EXEMPLE |
| | |
| | ---- |