我的项目的总体目标是连接到另一台服务器上的Oracle数据库,使用PHP查询它,以便我可以使用JavaScript创建数据图表。
我的伺服器匨落在 CentOS 上
到目前为止,我已经按照网络上的说明进行操作,并在我的服务器上安装了oci8以及Oracle Insant Client。
然后,我创建了一个 shell 脚本来通过隧道连接到远程服务器。
接下来,我创建了一个测试 php 文件来尝试连接到数据库
<?php
$conn = oci_connect('name', 'pw', 'servername/databasename');
if(!$conn){
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
oci_close($conn);
?>
当我在浏览器中加载它时,我收到以下错误
警告:oci_connect(): ORA-12541:TNS:第 3 行的/var/www/html/djc/ociConnect.php 中没有侦听器致命错误:ORA-12541:TNS:第 6 行的/var/www/html/djc/ociConnect.php 中没有侦听器
我已经对错误进行了研究,我知道主要问题是 lsnrctl start
不起作用,我没有 lsnrctl 功能。我也没有 TNSNAMES。ORA,或听众。ORA 文件。
我不知道如何让 lsnrctl 在我的服务器上工作,或者我什至是否从正确的角度解决这个问题。
还尝试启动sqlplus(我从rpm安装),返回未找到命令。
有什么建议吗?我什至不确定我是否要在正确的庄园中实现我的目标,所以任何帮助都非常感谢。
我曾经连接过:
//Putenv("NLS_LANG=SPANISH_SPAIN.WE8ISO8859P15");
$db="(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)
(HOST=$GLOBALS[dbhost])(PORT=$GLOBALS[dbport])
)
)
(CONNECT_DATA=(SID=$GLOBALS[dbname]))
)";
$conn = OCILogon($GLOBALS['dbuser'],$GLOBALS['dbpasswd'],$db);
相应地替换$GLOBALS['dbuser']、$GLOBALS['dbpasswd']、$GLOBALS[dbhost]、$GLOBALS[dbname]$GLOBALS[dbport]。