是否可以将PHP配置为使用http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/cnctslsh.htm?
中所述的安全外部密码存储区答案 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,用于持久连接,以及相同的语法
我希望这有帮助,我没有忘记任何事情