我编写了一个 PHP 脚本作为 cron 作业运行,但它没有运行。该脚本在浏览器中运行良好,但是当我从命令行运行它时发现出现此错误:
Warning: oci_connect(): ORA-12154: TNS:could not resolve the connect identifier specified in /usr/apps/webdata/cron/PropogateDB.php on line 190
有问题的行是:
$conn_NRB = oci_connect($user, $pass, "nrb.njbbnrbpd1");
正如我所说,这个脚本在浏览器中运行良好。
我做了一些挖掘,找到了数据库的配置设置。然后我尝试了这个:
$conn_NRB = oci_connect($user, $pass, "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=nrb)))");
使用此代码,命令行和浏览器都会给我这个错误:
Warning: oci_connect() [function.oci-connect]: ORA-01017: invalid username/password; logon denied in /usr/apps/webdata/cron/PropogateDB.php on line 191
据我所知,没有其他用户名和密码可以使用。(我现在正在尝试验证。)
我在这个网站上四处搜索,发现其他人也有类似的问题,虽然他的问题被颠倒了,他的原因是命令行和浏览器指向了两个不同的 php.ini 文件。我刚刚确认浏览器和命令行都调用了同一个 php.ini 文件。他们都指出:
Configuration File (php.ini) Path => /usr/local/php/lib
脚本可以在浏览器中运行但在命令行中失败还有其他原因吗?我对 Oracle SQL 比较陌生,我没有直接访问数据库的权限,所以我不确定从这里去哪里。
谢谢。