Installazione
 Installazione di OCI8 come Estensione Condivisa
 
  L'opzione di configurazione shared
  fa la build di OCI8 come libreria condivisa che può essere caricata dinamicamente in
  PHP.  La creazione di un'estensione condivisa consente di aggiornare facilmente OCI8
  senza influire sul resto di PHP.
 
 
  Configurare OCI8 utilizzando una delle seguenti opzioni di configurazione.
 
 
  
   - 
    
     Se si utilizzano le librerie » Oracle Instant
     Client gratuite, allora eseguire:
     
      
     Se Instant Client è installato da file ZIP, assicurarsi di creare
     prima il collegamento simbolico della libreria, ad esempio ln -s
     libclntsh.so.12.1 libclntsh.so.
 
     Se si utilizza un'installazione basata su RPM di Oracle Instant Client, la
     riga di configurazione sarà simile a questa:
     
      
     Per esempio, --with-oci8=shared,instantclient,/usr/lib/oracle/12.1/client/lib
     
     Si noti che il supporto di Oracle Instant Client è apparso per la prima volta in PHP
     4.3.11 e 5.0.4 e originariamente utilizzava l'opzione
     --with-oci8-instant-client per
     configurare PHP.
     
- 
    
     Se si utilizza un database Oracle o l'installazione completa del client Oracle, allora eseguire:
     
      
     Assicurarsi che l'utente del server web
     (nobody,www) abbia accesso alle
     librerie, ai file di inizializzazione
     e a tnsnames.ora (se utilizzato) sotto
     la directory$ORACLE_HOME.  Con Oracle
     10gR2, potrebbe essere necessario eseguire
     l'utilità $ORACLE_HOME/install/changePerm.sh
     per fornire l'accesso alla directory.
 
  Dopo la configurazione, seguire la solita procedura di build di PHP,
  ad es. make install.  Verrà creata la libreria dell'estensione
  condivisa OCI8 oci8.so. Potrebbe essere necessario
  spostarla manualmente nella directory delle estensioni PHP, specificata
  dall'opzione extension_dir nel
  proprio file php.ini.
 
 
  Per completare l'installazione di OCI8, modificare php.ini ed aggiungere la riga:
 
 
  
 
 
 Installazione di OCI8 come Estensione Compilata Staticamente
 
  Configurare PHP per includere OCI8 utilizzando una delle seguenti opzioni di configurazione.
 
 
  
   - 
    
     Se si utilizza Oracle Instant Client, allora eseguire:
     
      
- 
    
     Se si utilizza un database Oracle o l'installazione completa del client Oracle, allora eseguire:
     
      
  Dopo la configurazione, seguire la solita procedura di build di PHP,
  ad es. make install.  Dopo che la compilazione
  è riuscita, non è necessario aggiungere oci8.so a
  php.ini. Non sono necessari passaggi di build aggiuntivi.
 
 
 Installazione di OCI8 da PECL
 
  L'estensione OCI8 può essere aggiunta a un'installazione PHP esistente
  automaticamente o manualmente
  da » PECL.
 
 
  Per un'installazione automatica, seguire questi passaggi:
 
 
  
   - 
    
     Se si è dietro un firewall, impostare il proxy di PEAR, ad esempio:
     
      
- 
    
     Eseguire
     
      
     Quando richiesto, inserire il valore di $ORACLE_HOME, oinstantclient,/percorso/verso/instant/client/lib.
 
      Nota: Non immettere la variabile $ORACLE_HOMEperché non verrà espansa.  Immettere invece il percorso effettivo
      della home directory di Oracle.
 
  Per un'installazione manuale quando il comando pecl non è
  disponibile, scaricare il pacchetto PECL OCI8, ad es. oci8-1.4.10.tgz.
 
 
  
 
 
  Dopo un'installazione automatica o manuale, modificare il proprio file
  php.ini e aggiungere la riga:
 
 
  
 
 
  Assicurarsi che la direttiva
  extension_dir del php.ini sia
  impostata alla directory in cui è stato installato
  oci8.so.
 
 
 Installazione di OCI8 su Windows
 
  Quando si utilizzano le librerie client Oracle 10gR2 su
  Windows, rimuovere il commento dalla riga
  extension=php_oci8.dll del file php.ini.  Quando si utilizzano le librerie
  client Oracle 11gR2 o successive, rimuovere il commento
  da extension=php_oci8_11g.dll
  o extension=php_oci8.dll. Con le librerie
  Oracle 12c
  utilizzare extension=php_oci8_12c.dll
  o extension=php_oci8_11g.dll
  o extension=php_oci8.dll. È possibile abilitare solo
  una di queste DLL alla volta. Le DLL con versioni successive possono contenere più
  funzionalità. Non tutte le DLL potrebbero essere disponibili per tutte le versioni di
  PHP. Assicurarsi
  che extension_dir sia impostata
  alla directory contenente le DLL delle estensioni PHP.
 
 
  Se si utilizza Instant Client, impostare la variabile di ambiente
  di sistema PATH alla directory della libreria Oracle.
 
 
 Impostazione dell'Ambiente Oracle
 
  Prima di utilizzare questa estensione, assicurarsi che le variabili di ambiente
  Oracle siano impostate correttamente per l'utente demone web. Se il server
  Web viene avviato automaticamente all'avvio, assicurarsi che anche
  l'ambiente di avvio sia configurato correttamente.
 
 Nota: 
  
   Non impostare le variabili di ambiente Oracle
   utilizzando putenv() in uno script PHP perché le librerie
   Oracle potrebbero essere caricate e inizializzate prima che lo script
   venga eseguito. Le variabili impostate con putenv() possono quindi causare
   conflitti, arresti anomali o comportamenti imprevedibili.  Alcune funzioni potrebbero
   funzionare, ma altre potrebbero fornire piccoli errori. Le variabili dovrebbero essere
   impostate prima che il server web venga avviato.  
  
 
 
  Su Red Hat Linux e varianti, esportare le variabili alla fine di
  /etc/sysconfig/httpd.  Altri sistemi con
  Apache 2 possono utilizzare uno script envvars nella
  directory bin di Apache.  Una terza opzione, la
  direttiva Apache SetEnv
  in httpd.conf, può funzionare in alcuni sistemi ma è
  nota per essere insufficiente in altri.
 
 
  Per verificare che le variabili d'ambiente siano impostate correttamente,
  usare phpinfo() e controllare
  che la sezione Environment (non
  Apache Environment) contenga le variabili previste.
 
 
  Le variabili che potrebbero essere necessarie sono incluse nella tabella
  seguente.  Fare riferimento alla documentazione Oracle per ulteriori informazioni su
  tutte le variabili disponibili.
  
   Variabili di Ambiente Oracle Comuni
   
    
     
      | Nome | Scopo | 
    
    
     
      | ORACLE_HOME | Contiene la directory del software Oracle Database
      completo.  Non si deve impostare quando si utilizza Oracle Instant Client in
      quanto non è necessario e potrebbe causare problemi di installazione. | 
     
      | ORACLE_SID | Contiene il nome del database sulla macchina locale a
      cui connettersi. Non è necessario impostarlo se si utilizza
      Oracle Instant Client o si passa sempre il parametro di connessione
      a oci_connect(). | 
     
      | LD_LIBRARY_PATH | Impostare questo (o l'equivalente della piattaforma, come DYLD_LIBRARY_PATH,LIBPATHoSHLIB_PATH) alla posizione delle librerie
      Oracle, ad esempio $ORACLE_HOME/lib
      o /usr/lib/oracle/11.1/client/lib. Questa
      variabile non è necessaria se le librerie sono localizzate da un
      meccanismo di ricerca diverso, come
      con ldconfig o
      conLD_PRELOAD. | 
     
      | NLS_LANG | Questa è la variabile principale per l'impostazione del set di
      caratteri e delle informazioni di globalizzazione utilizzate dalle librerie
      Oracle. | 
     
      | ORA_SDTZ | Imposta il fuso orario della sessione Oracle. | 
     
      | TNS_ADMIN | Contiene la directory in cui vengono conservati i file
      di configurazione di Oracle Net Services come tnsnames.ora
      e sqlnet.ora. Non necessario se
      la stringa di connessione oci_connect() utilizza la
      sintassi di denominazione Easy Connect come localhost/XE. Non necessario se i file
      di configurazione di rete si trovano in una delle posizioni predefinite come
      $ORACLE_HOME/network/admin 
      o /etc. | 
    
   
  
   Le variabili di ambiente Oracle utilizzate meno di frequente includono
   
TWO_TASK, 
ORA_TZFILE e le
   varie impostazioni di globalizzazione Oracle
   come le variabili 
NLS* e
   
ORA_NLS_*.  
 
 
 Risoluzione dei problemi
 
  Il problema più comune con l'installazione di OCI8 non è avere
  l'ambiente Oracle impostato correttamente.  Questo in genere appare come
  problema usando oci_connect()
  o oci_pconnect().  L'errore potrebbe essere un errore PHP
  come Call to undefined function
  oci_connect(), un errore Oracle come ORA-12705 o persino
  un arresto anomalo di Apache.  Controllare i file di log di Apache per errori di avvio e
  vedere le sezioni precedenti per risolvere questo problema.
 
 
  Mentre errori di rete come ORA-12154 o ORA-12514 indicano un problema
  di configurazione o denominazione di rete Oracle, la causa principale potrebbe essere dovuta al fatto che
  l'ambiente PHP non è impostato correttamente e le librerie Oracle non
  sono in grado di individuare il file di configurazione
  tnsnames.ora.
 
 
  Su Windows, avere più versioni di Oracle su una macchina
  può facilmente causare conflitti di libreria a meno che non si presti attenzione per assicurarsi
  che PHP utilizzi solo la versione corretta di Oracle.
 
 
  Un'utilità per esaminare quali librerie vengono cercate e caricate
  può aiutare a risolvere problemi di libreria mancanti o contrastanti, in particolare su
  Windows.
 
 Nota: 
  Se il server web non si avvia o si arresta in modo anomalo
  all'avvio
  
   Verificare che Apache sia collegato alla libreria pthread:
  
  
   
  
  
   Se libpthread non è elencato, reinstallare Apache:
  
  
   
  
  
   Si noti che su alcuni sistemi come UnixWare, è libthread
   invece di libpthread. PHP e Apache devono essere configurati con
   EXTRA_LIBS=-lthread.