Oracle
 sql >> Database >  >> RDS >> Oracle

Connettiti da PHP a un DB Oracle utilizzando un portafoglio Oracle

Sì, è possibile, devi:
1 - creare un portafoglio (come spiegato nel tuo link)
2 - mettere il client istantaneo Oracle e i file del portafoglio da qualche parte sul server con Apache+PHP (ad esempio /opt/instantclient e /opt/wallet)
3 - avvia Apache con le seguenti variabili:

ORACLE_HOME=/opt/instantclient   
LD_LIBRARY_PATH=/opt/instantclient   
TNS_ADMIN=/opt/wallet  

4 - In /opt/wallet crea un file tnsnames.ora con questo contenuto:

WALLET_NAME =  
  (DESCRIPTION =  
    (ADDRESS = (PROTOCOL = TCP)(HOST = DB_IP)(PORT = DB_PORT))    
    (CONNECT_DATA = (SID = DB_SID))    
  )   

dove WALLET_NAME è il nome del wallet scelto al momento della creazione del wallet, DB_IP è l'indirizzo ip o hostname del database, DB_PORT è la porta db, e DB_SID è il sid del database
5 - In /opt/wallet crea un file sqlnet.ora con questo contenuto:

WALLET_LOCATION =    
   (SOURCE =     
     (METHOD = FILE)     
     (METHOD_DATA =     
       (DIRECTORY = /opt/wallet)     
     )      
    )     

SQLNET.WALLET_OVERRIDE = TRUE  

6 - riavvia Apache

Lato codice PHP ora puoi collegarti al database aprendo una connessione con il seguente codice:

$conn = oci_connect("/", "", "WALLET_NAME", null, OCI_CRED_EXT);

altrimenti puoi usare oci_pconnect, per connessioni persistenti, e la stessa sintassi
Spero che questo aiuti e non ho dimenticato nulla