是的,这是可能的,您需要:
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 - 重新启动阿帕奇
现在,在 PHP 代码端,您可以使用以下代码连接到打开连接的数据库:
$conn = oci_connect("/", "", "WALLET_NAME", null, OCI_CRED_EXT);
您可以使用 oci_pconnect 来实现持久连接,并且使用相同的语法
我希望这有帮助,我没有忘记任何事情