Installation
 
 
 
 
  Installation d'OCI8 depuis PECL en utilisant la commande pecl
  
   L'extension OCI8 peut être ajoutée à une installation PHP existante en utilisant
   le référentiel » PECL.
  
  
   
    - 
     
      Si vous êtes derrière un pare-feu, définissez le proxy de PEAR, par exemple :
      
       
- 
     
      Exécutez :
      
       
      Pour PHP 7, utilisez pecl install oci8-2.2.0.
 
- 
     
      Lorsqu'on vous le demande, saisissez la valeur de $ORACLE_HOMEouinstantclient,/chemin/vers/le/répertoire/instant/client/lib.
 
      Remarque : Ne saisissez pas de noms de variables tels que $ORACLE_HOMEou$HOMEcarpeclne les
      développera pas. Au lieu de cela, saisissez un chemin développé, par exemple/opt/oracle/product/19c/dbhome_1ouinstantclient,/Users/monnom/Téléchargements/instantclient_19_8.
 
- 
     
      Si vous obtenez une erreur oci8_dtrace_gen.h: Aucun fichier ou
      répertoire de ce type, cela signifie que PHP a été compilé
      avec DTrace Dynamic Tracing activé.
      Installez en utilisant la commande :
 
       
- 
    
      Modifiez votre fichier php.ini et ajoutez la ligne :
      
       
      Assurez-vous que la directive php.ini
      extension_dir est
      définie sur le répertoire dans lequel oci8.so a été installé.
      
 
 
  Installation d'OCI8 depuis PECL en utilisant phpize
  
   Pour installer OCI8 sur une installation PHP existante lorsque
   la commande pecl n'est pas disponible, téléchargez manuellement
   le package OCI8 » PECL,
   par exemple oci8-3.0.0.tgz.
  
  
   
    - 
     
      Extraire le package :
      
       
- 
     
      Préparer le package :
      
       
- 
     
      Configurer le package en utilisant soit $ORACLE_HOME, soit Instant Client.
 
       
     or
     
      
- 
     
      Installer le package :
      
       
- 
      
       Si vous obtenez une erreur oci8_dtrace_gen.h: Aucun fichier ou
       répertoire de ce type, cela signifie que PHP a été compilé
       avec DTrace Dynamic Tracing activé.
       Exécutez à nouveau les commandesconfigureetmakeaprès avoir défini cette variable d'environnement :
 
        
- 
      
       Modifiez votre fichier php.ini et ajoutez la ligne :
       
        
      Assurez-vous que la directive php.ini
      extension_dir est
      configurée sur le répertoire dans lequel oci8.so
      a été installé.
      
 
  
  Installation d'OCI8 en tant qu'extension partagée lors de la compilation de PHP
  
   Si vous compilez PHP à partir du code source, l'option de configuration shared peut être utilisée pour construire OCI8 en tant que bibliothèque partagée qui peut être chargée dynamiquement dans PHP. La construction d'une extension partagée permet à OCI8 d'être facilement mis à jour sans avoir d'impact sur le reste de PHP.
  
  
   Configurez OCI8 en utilisant l'une des options de configuration suivantes.
  
  
   
    - 
     
      Si vous utilisez les bibliothèques gratuites » Oracle Instant
      Client, faites ce qui suit :
      
       
      Si Instant Client 12.2 (ou une version antérieure) est installé à partir de fichiers ZIP, assurez-vous de créer
      d'abord le lien symbolique vers la bibliothèque, par exemple ln -s
      libclntsh.so.12.1 libclntsh.so.
 
      Si vous utilisez une installation basée sur RPM d'Oracle Instant Client,
      la ligne de configuration ressemblera à ceci :
      
       
     Par exemple, --with-oci8=shared,instantclient,/usr/lib/oracle/19.9/client/lib
     
- 
     
      Si vous utilisez une base de données Oracle ou une installation complète d'Oracle Client, procédez comme suit :
      
       
      Assurez-vous que l'utilisateur du serveur web (nobody,www) a accès aux
      bibliothèques, aux fichiers d'initialisation
      et au fichier tnsnames.ora (si utilisé) sous
      le répertoire$ORACLE_HOME. Avec Oracle
      10gR2, vous devrez peut-être exécuter
      l'utilitaire $ORACLE_HOME/install/changePerm.sh
      pour donner accès au répertoire.
 
  Après la configuration, suivez la procédure habituelle de compilation de PHP,
  par exemple make install. L'extension partagée OCI8 oci8.so
  sera créée. Il peut être nécessaire de la déplacer manuellement dans le répertoire des extensions PHP, spécifié par
  l'option extension_dir dans votre
  fichier php.ini.
 
 
  Pour terminer l'installation d'OCI8, modifiez le fichier php.ini et ajoutez la ligne :
 
 
      
 
 
 Installation d'OCI8 en tant qu'extension statiquement compilée lors de la compilation de PHP
 
  Si vous compilez PHP à partir du code source, vous pouvez configurer PHP pour inclure
  OCI8 en tant qu'extension statique en utilisant l'une des options de configuration suivantes.
 
 
  
   - 
    
     Si vous utilisez Oracle Instant Client, faites ce qui suit :
      
       
- 
     
      Si vous utilisez une base de données Oracle ou une installation complète du client Oracle, faites ce qui suit :
      
       
   Après la configuration, suivez la procédure habituelle
   de construction de PHP, par exemple make install. Après une compilation
   réussie, vous n'avez pas besoin d'ajouter oci8.so à
   votre php.ini. Aucune étape supplémentaire de construction n'est requise.
  
  
 
  Installation d'OCI8 sous Windows
  
   La bibliothèque OCI8 peut être ajoutée à une installation existante de PHP en utilisant
   les DLL du référentiel » PECL ou les bibliothèques situées dans le répertoire
   ext de votre installation PHP.
  
  
   Avec les bibliothèques Oracle 12c (ou ultérieures), décommentez l'une des
   lignes suivantes dans votre fichier php.ini extension=php_oci8_12c.dll
   ou extension=php_oci8_11g.dll, ou bien
   extension=php_oci8.dll. Seule une de ces DLLs doivt
   être active au même moment. Les DLLs avec des versions supérieures peuvent
   contenir plus de fonctionnalités. Toutes les DLLs peuvent ne pas être disponibles
   pour toutes les versions de PHP. Assurez-vous que l'option
   extension_dir est définie sur le dossier
   contenant les extensions DLLs de PHP.
  
  
   Si vous utilisez le client Oracle Instant, définissez la variable
   d'environnement PATH du système au dossier contenant les
   bibliothèques Oracle.
  
  
 
  Définition de l'environnement Oracle
  
   Avant d'utiliser cette extension, assurez-vous que les variables d'environnement
   Oracle sont correctement définies pour l'utilisateur exécutant le serveur Web.
   Si votre serveur Web est automatiquement démarré au démarrage de votre serveur,
   alors assurez-vous également de la bonne configuration de la variable
   d'environnement utilisé à ce moment ci.
  
  Note: 
   
    Ne définissez pas les variables d'environnement Oracle en utilisant la fonction
    putenv() dans vos scripts PHP, car les bibliothèques
    Oracle sont chargées et initialisées avant l'exécution de votre script.
    Les variables définies avec putenv() pourraient
    ainsi entrer en conflit et provoquer aussi bien des crashs que des
    comportements totalement inattendu. Des fonctions peuvent réagir
    normalement, d'autres peuvent provoquer des erreurs. Les variables
    doivent être définies avant le démarrage du
    serveur.  
   
  
  
   Sous les systèmes Red Hat Linux et ces variantes, vous devez exporter
   les variables à la fin du fichier /etc/sysconfig/httpd.
   Sous les autres systèmes utilisant Apache 2, vous devez utiliser le
   script envvars que vous trouverez dans le dossier
   bin d'Apache. Une autre option consiste à utiliser
   la directive SetEnv du fichier
   httpd.conf, mais ceci peut ne pas être suffisant
   sur quelques systèmes.
  
  
   Pour vérifier si les variables d'environnement ont été définies
   correctement, utilisez la fonction phpinfo()
   et attardez-vous sur la section Environment
   (et non la section Apache Environment) ;
   elle doit contenir toutes les variables définies.
  
  
   Les variables qui doivent vous êtes nécessaires sont
   inclues dans la table suivante. Reportez-vous à la documentation Oracle
   pour plus d'informations sur toutes les variables.
   
    Variables d'environnement Oracle communes
    
     
      
       | Nom | But | 
     
     
      
       | ORACLE_HOME | Chemin vers le dossier contenant le logiciel de base de données
        Oracle. Ne définissez pas cette variable si vous utilisez le client
        Oracle Instant. En effet, elle n'est pas nécessaire mais peu causer
        des problèmes lors de l'installation. | 
      
       | ORACLE_SID | Le nom de la base de données sur la machine locale. Il n'est pas
        nécessaire de la définir si vous utilisez le client Oracle Instant,
        ou alors, passez la toujours comme paramètre de connexion à la
        fonction oci_connect(). | 
      
       | LD_LIBRARY_PATH | Définissez cette variable (ou son équivalent sur la plateforme
        courante, comme LIBPATH,
        ouSHLIB_PATH)
        comme le chemin vers les bibliothèques Oracle, par exemple
        $ORACLE_HOME/lib ou
        /usr/lib/oracle/19/client/lib.
        Cette variable n'est pas nécessaire si les bibliothèques
        sont localisées par un mécanisme de recherche différent, comme
        avec ldconfig ou
        avecLD_PRELOADau lieu
        deLD_LIBRARY_PATH.. | 
      
       | NLS_LANG | C'est la variable principale pour définir le
        jeu de caractères et les informations de globalisation
        utilisés par les bibliothèques Oracle. | 
      
       | ORA_SDTZ | Définit le décalage horaire à utiliser par les sessions Oracle. | 
      
       | TNS_ADMIN | Chemin vers le dossier contenant les fichiers de configuration
        Oracle Net Services (tnsnames.ora
        et sqlnet.ora). Inutile si la chaîne
        de connexion utilisée par la fonction
        oci_connect() est au format de connexion facile
        comme localhost/XE. Inutile également si les
        fichiers de configuration du réseau sont à des endroits
        par défaut comme /usr/lib/oracle/VERSION/client/lib/network/admin, $ORACLE_HOME/network/admin
        ou /etc. | 
     
    
   
   Il existe d'autres variables d'environnement Oracle moins souvent
   utilisées, comme 
TWO_TASK,
   
ORA_TZFILE, ainsi que les diverses variables
   de globalisation comme 
NLS* et
   
ORA_NLS_*.
  
 
 
 
  En cas de problème
  
   Le problème le plus courant lors de l'installation d'OCI8 est
   d'avoir mal configuré le jeu de variables d'environnement correctement.
   C'est un problème typique lorsque vous recevez un message
   d'erreur lors de l'utilisation des fonctions
   oci_connect() ou oci_pconnect().
   L'erreur peut être une erreur purement PHP comme Call to undefined function
   oci_connect(), une erreur Oracle comme ORA-12705 ou
   encore un arrêt brutal d'Apache. Vérifiez le contenu des fichiers de
   log d'Apache lors de son démarrage et reportez-vous aux sections
   ci-dessus pour résoudre le problème.
  
  
   Alors que les erreurs réseaux comme ORA-12154 ou ORA-12514 indiquent
   un problème quant au nommage du réseau ou un problème de configuration,
   bien souvent, la cause première est que l'environnement PHP n'est pas
   correctement défini et que les bibliothèques Oracle sont incapables
   de trouver le fichier de configuration tnsnames.ora.
  
  
   Sous Windows, le fait d'avoir plusieurs versions d'Oracle sur la même
   machine peut facilement faire crasher l'installation tant que vous
   ne vous êtes pas assuré que PHP n'utilise pas uniquement la bonne
   version d'Oracle.
  
  
   Un utilitaire permettent d'examiner les bibliothèques recherchées
   et chargées peut vous aider quant à la résolution de ce genre
   de problème, tout particulièrement sous Windows.
  
  Note: 
   Si le serveur Web ne démarre pas ou échoue au démarrage
   
    Vérifiez qu'Apache est lié avec la bibliothèque pthread :
   
   
    
   
   
    Si la bibliothèque libpthread n'est pas listé, réinstallez Apache :
   
   
    
   
   
    Notez que sous des systèmes comme UnixWare, la bibliothèque s'appelle
    libthread au lieu de libpthread. PHP et Apache doivent être configurés
    avec EXTRA_LIBS=-lthread.