Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Verbinden Sie sich von PHP mit einer Oracle DB mit einem Oracle Wallet

Ja, das ist möglich, Sie müssen:
1 - ein Wallet erstellen (wie in Ihrem Link erklärt)
2 - den Oracle-Instant-Client und die Wallet-Dateien mit Apache+PHP irgendwo auf dem Server ablegen (z /opt/instantclient und /opt/wallet)
3 - Starten Sie Apache mit den folgenden Variablen:

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

4 - Erstellen Sie in /opt/wallet eine tnsnames.ora-Datei mit diesem Inhalt:

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

wobei WALLET_NAME der Name der Brieftasche ist, die bei der Erstellung der Brieftasche ausgewählt wurde, DB_IP die IP-Adresse oder der Hostname der Datenbank, DB_PORT der DB-Port und DB_SID die SID der Datenbank
5 - In /opt/wallet Erstellen Sie eine sqlnet.ora-Datei mit diesem Inhalt:

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

SQLNET.WALLET_OVERRIDE = TRUE  

6 - Apache neu starten

Auf der Seite des PHP-Codes können Sie jetzt eine Verbindung zur Datenbank herstellen, indem Sie eine Verbindung mit dem folgenden Code öffnen:

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

Sie können ansonsten oci_pconnect für dauerhafte Verbindungen und dieselbe Syntax verwenden
Ich hoffe, das hilft und ich habe nichts vergessen