使用Oracle Wallet从PHP连接到Oracle DB

时间:2011-08-25 16:46:49

标签: php oracle

是否可以将PHP配置为使用http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/cnctslsh.htm

中所述的安全外部密码存储区

1 个答案:

答案 0 :(得分:2)

是的,有可能,你需要:
1 - 创建一个钱包(如链接中所述)
2 - 使用Apache + PHP将Oracle即时客户端和钱包文件放在服务器上的某个位置(例如/ opt / instantclient和/ opt / wallet)
3 - 使用以下变量启动Apache:

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

4 - 在/ opt / wallet中创建一个包含此内容的tnsnames.ora文件:

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

其中WALLET_NAME是钱包创建时选择的钱包名称,DB_IP是数据库IP地址或主机名,DB_PORT是数据库端口,DB_SID是数据库的sid 5 - 在/ opt / wallet中使用以下内容创建sqlnet.ora文件:

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

SQLNET.WALLET_OVERRIDE = TRUE  

6 - 重启Apache

现在,在PHP代码方面,您可以使用以下代码连接到数据库打开连接:

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

你可以使用oci_pconnect,用于持久连接,以及相同的语法
我希望这有帮助,我没有忘记任何事情