ORA-12154 PHP OCI8悲痛

时间:2011-12-07 07:23:40

标签: php linux oracle oci

使用Oracle的11g XE(免费版)配置了CentOS 5.6服务器,在this guide的帮助下安装了OCI8,并且预先存在(自定义)PHP应用程序与数据库进行通信,没有任何问题。称为服务器Dev并开始下一次构建。

我正在开发的Prod服务器就像Dev一样,但Oracle 11G是标准版,而不是免费版。就我所知,其他一切都是相同的。绝对是相同的OCI RPM。

  

警告:ocilogon()[function.ocilogon]:ORA-12154:TNS:不能   解析中指定的连接标识符   /var/www/html/blah/blah.php

我确信我有一个“环境”问题,但我无法弄清楚如何解决它。

Oracle,Apache,OCI8和PHP都在同一个盒子里。

什么有效:

    来自Prod服务器的
  • tnsping orcl
  • 来自Prod的
  • sqlplus user@orcl 服务器
  • phpconfig();显示所有OCI8内容。比较Dev和Prod上的结果,它们是相同的。
  • 我也可以通过Toad从VPN另一端的XP客户端连接。

我可以让PHP与数据库通信。让我生气!

在Prod服务器上进行了全局搜索,只有一个tnsnames.ora文件。这是它的样子:

  

ORCL =(DESCRIPTION =
      (ADDRESS =(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
      (CONNECT_DATA =
        (SERVER = DEDICATED)         (SERVICE_NAME = orcl)
      ))

我应该提供哪些有用的东西?只需发表评论。

真的不想在Prod盒子上展平并重新开始......请帮我解决这个问题!

[编辑]
我想,它找不到听众。出于好奇,我停止了监听服务,并确认错误没有任何改变。

根据要求,这里有一些代码。

抛出我上面提到的错误的代码:

$dbh = OCILogon($vars[oracle_login], $vars[oracle_pwd], $vars[oracle_instance]);

变量在另一个文件中设置:

...

但我们可以跳过这一点。在将它们复制并粘贴到这里时,我花了一些时间来排列括号 - 并找到了额外的。

错字!

卫生署。 /捂脸。

1 个答案:

答案 0 :(得分:0)

在完成显示某些代码的请求时,我花了一些时间对其进行格式化并将其全部排除。那时,我发现了一个额外的括号。

修复了解决问题的方法。

对所有的阅读感到抱歉!