如何修复IIS上的ORA-12154错误?

时间:2014-04-14 19:18:10

标签: php oracle iis oracle11g

我知道这是一个非常不寻常的设置,但我需要这样做:

我有一个需要连接到Oracle的php应用程序。它通过php odbc库工作正常,但后来我需要更改服务器,所以问题开始..

在SQL Plus应用程序和ODBC管理器工具中,它可以工作,但是我在php上使用oci或odbc连接,返回ora-12154错误。

这是一段代码:

$tnsName = "svr_aplicacao";
try {
  if ($bd->link=oci_connect($usrName, $pwd, $tnsName)) {
    $err = '';
    $bd->result = true;
  } else {
    $err = oci_error();
    $bd->codErro = $err['code'];    
    $bd->msgErro = $err['message'];
    $bd->result = false;
  }
}catch (Exception $e){
  print_r ($e);
}

以下是tnsnames.ora声明:

svr_aplicacao =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.248)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

我已经尝试设置TNS_ADMIN环境变量,但随后错误更改为“No TNS listener”

是否存在我应该应用于IIS或其他什么的oracle文件/文件夹访问权限?

感谢

1 个答案:

答案 0 :(得分:0)

经过一整天的努力解决这个问题,有一个解决方案:

1 - 下载PHP非线程二进制文件并重新安装在C:\ PHP文件夹中。似乎程序文件(x86)文件夹中的parentesis导致了错误。

2 - 在IIS上更改PHP版本

3 - 转到IIS - > PHP管理器 - > PHP设置:

  • 注册新的PHP版本 - >表示c:\ PHP文件夹
  • 更改PHP版本

4 - 转到IIS - > PHP管理器 - > PHP扩展    - 重新启用库oci8,oci8_11g,ldap和fileinfo

它对我有用。 希望它可以帮助某人