Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Conecte-se do PHP a um banco de dados Oracle usando uma Oracle Wallet


Sim, é possível, você precisa:
1 - criar uma carteira (como explicado no seu link)
2 - colocar o Oracle instant client e os arquivos da carteira em algum lugar no servidor com Apache+PHP (por exemplo /opt/instantclient e /opt/wallet)
3 - inicie o Apache com as seguintes variáveis:
ORACLE_HOME=/opt/instantclient   
LD_LIBRARY_PATH=/opt/instantclient   
TNS_ADMIN=/opt/wallet  

4 - Em /opt/wallet crie um arquivo tnsnames.ora com este conteúdo:
WALLET_NAME =  
  (DESCRIPTION =  
    (ADDRESS = (PROTOCOL = TCP)(HOST = DB_IP)(PORT = DB_PORT))    
    (CONNECT_DATA = (SID = DB_SID))    
  )   

onde WALLET_NAME é o nome da carteira escolhida quando a carteira foi criada, DB_IP é o endereço ip do banco de dados ou nome do host, DB_PORT é a porta db e DB_SID é o sid do banco de dados
5 - Em /opt/wallet crie um arquivo sqlnet.ora com este conteúdo:
WALLET_LOCATION =    
   (SOURCE =     
     (METHOD = FILE)     
     (METHOD_DATA =     
       (DIRECTORY = /opt/wallet)     
     )      
    )     

SQLNET.WALLET_OVERRIDE = TRUE  

6 - reinicie o Apache

No lado do código PHP agora você pode se conectar ao banco de dados abrindo uma conexão com o seguinte código:
$conn = oci_connect("/", "", "WALLET_NAME", null, OCI_CRED_EXT);

você pode usar de outra forma o oci_pconnect, para conexões persistentes, e a mesma sintaxe
Espero que ajude e não esqueci nada