【问题标题】:ORA-12154 PHP OCI8 griefORA-12154 PHP OCI8 悲伤
【发布时间】:2012-01-14 18:05:02
【问题描述】:

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

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

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

我确定我有一个“环境”问题,但我不知道如何解决它。

Oracle、Apache、OCI8 和 PHP 都在同一个盒子上。

什么有效:

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

我只能让 PHP 与数据库对话。快把我逼疯了!

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

ORCL = (描述 =
(地址 = (协议 = TCP)(主机 = localhost.localdomain)(端口 = 1521))
(CONNECT_DATA =
(服务器 = 专用) (SERVICE_NAME = orcl)
) )

我应该提供什么有用的东西吗?只需发表评论。

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

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

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

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

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

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

...

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

错字!

哦。 /掌脸。

【问题讨论】:

  • 你能显示在 blah.php 中传递给 ocilogon() 的确切内容吗?
  • 看看stackoverflow.com/questions/7957955/… - 看看你有没有进一步了解。如果您可以从其他地方连接,几乎可以肯定是环境问题。
  • “错字!”答案?最好将其放在答案中,以便可以将问题视为已回答

标签: php linux oracle oracle-call-interface


【解决方案1】:

在满足显示一些代码的请求时,我花了一点时间来格式化它并把它排好。那时,我发现了一个额外的括号。

解决问题。

抱歉阅读了所有内容!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 2013-11-26
    • 2019-12-14
    相关资源
    最近更新 更多