sql >> Base de Datos >  >> RDS >> Oracle

Conéctese desde PHP a una base de datos Oracle usando una billetera Oracle

Sí, es posible, necesita:
1 - crear una billetera (como se explica en su enlace)
2 - colocar el cliente instantáneo de Oracle y los archivos de la billetera en algún lugar del servidor con Apache+PHP (por ejemplo /opt/instantclient y /opt/wallet)
3 - inicie Apache con las siguientes variables:

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

4 - En /opt/wallet crea un archivo tnsnames.ora con este contenido:

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

donde WALLET_NAME es el nombre de la billetera elegida cuando se creó la billetera, DB_IP es la dirección IP o el nombre de host de la base de datos, DB_PORT es el puerto de la base de datos y DB_SID es el sid de la base de datos
5 - En /opt/wallet cree un archivo sqlnet.ora con este contenido:

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

SQLNET.WALLET_OVERRIDE = TRUE  

6 - reiniciar Apache

En el lado del código PHP, ahora puede conectarse a la base de datos abriendo una conexión con el siguiente código:

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

de lo contrario, puede usar oci_pconnect, para conexiones persistentes, y la misma sintaxis
Espero que esto ayude y no olvidé nada