Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
oci8 [Le 11/08/2008, 15:11] 86.65.231.203, 127.0.0.1 |
oci8 [Le 10/10/2009, 05:16] (Version actuelle) YannUbuntu |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>serveur reseau web sgbd}} | + | {{tag>serveur réseau php}} |
| ---- | ---- | ||
| ====== OCI8 : extension PHP pour les connexions avec Oracle ====== | ====== 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. | 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> | ||
| - | ===== Récuperation des sources ===== | + | [[: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** |
| - | 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 ===== | ===== 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 | + | 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 : | + | <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> |
| - | /usr/lib/oracle/xe/app/oracle/product/10.2.0/client | + | 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. | 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. | Le processus de compilation devrait alors se passer convenablement et vous informer de sa réussite. | ||
| - | |||
| - | |||
| - | |||
| ===== Configurer apache ===== | ===== 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 | + | 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** |
| - | extension=oci8.so | + | <file>extension=oci8.so</file> |
| Redémarrez enfin Apache 2 : | Redémarrez enfin Apache 2 : | ||
| + | >FIXME un reload ne suffit pas ? | ||
| - | sudo /etc/init.d/apache2 restart | + | 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 depuis une ligne de commande du type | + | |
| - | php monfichier.php | + | |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
| + | 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 ===== | ===== 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: | ||
| + | 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 = | EXEMPLE = | ||
| (DESCRIPTION = | (DESCRIPTION = | ||
| Ligne 101: | Ligne 71: | ||
| ) | ) | ||
| ) | ) | ||
| + | </file> | ||
| + | faites un test : | ||
| - | faites un test | + | sqlplus login_du_serveur_distant/mot_de_passe_du_serveur_distant@EXEMPLE |
| - | + | ||
| - | sqlplus login_du_serveur_distant/mot_de_passe_du_serveur_distant@EXEMPLE | + | |
| - | + | ||
| - | + | ||
| ---- | ---- | ||
| - | |||
| - | //Contributeurs: // | ||