oracle PHP oci_connect()TNS:无法解析连接标识符(ORA-12154)

zi8p0yeb  于 2023-08-03  发布在  Oracle
关注(0)|答案(2)|浏览(122)

我正在Ubuntu服务器上测试一些PHP代码,Oracle数据库连接是通过“tnsping”命令检查的

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.14)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) (SID = ORCL)))
OK (10 msec)

字符串
但是,PHP中的oci_connect函数显示一个警告,如
警告:oci_connect():/usr/local/ipm 5/wui/manager/123.bih(第6行2)无法解析/usr/local/ipm 5/wui/manager/123.bih中指定的连接标识符
当然,OCI 8已启用(通过phpinfo检查),并且一些环境(PATHORACLE_BASEORACLE_HOMEORACLE_SIDTNS_ADMINLD_LIBRARY_PATH)变量已设置到/etc/bash.bashrc
有谁推荐吗??问题是什么。

hec6srdp

hec6srdp1#

而不是ORCL,您可能希望将整个字符串放在oci_connect中

(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.14)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) (SID = ORCL)))

字符串
PHP代码:

oci_connect($username, $password, '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.14)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ORCL) (SID = ORCL)))');


检查phpinfo()输出的“Environment”部分,如果你没有ORACLE_HOME、TNS_ADMIN,你需要让它们在你的PHP运行环境中可用,对于apache用php_module编译的

export ORACLE_HOME=/path/to/oracle_home
export TNS_ADMIN=/path/to/tns_admin
apachectl start


用于php-cgi或php-fpm

export ORACLE_HOME=/path/to/oracle_home
export TNS_ADMIN=/path/to/tns_admin
/script/to/start/fpm

idfiyjo8

idfiyjo82#

当使用无法访问的远程数据库或需要VPN连接才能访问时,也可能发生这种情况。

相关问题