Ceci est une ancienne révision du document !


En-tête 5

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.

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

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.

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

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

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:

  • oci8.1230891620.txt.gz
  • Dernière modification: Le 18/04/2011, 14:47
  • (modification externe)