快照启动后:Informix Client -23101 / Oracle即时客户端-28759

时间:2015-10-16 07:46:33

标签: php linux oracle redhat informix

不要浪费你的时间,我会描述我拥有的东西&&我现在有什么我的应用程序是用PHP编写的。他们住在带有nginx + apache web服务器的redhat6服务器上。我们将数据存储在MySQL数据库中,但是我们从Oracle和IBM Informix数据库中获得了大量的数据,& MSSQL。对于Oracle& Informix我已经安装了客户端&&编译库pdo_oci.so& pdo_informix.so。几个月他们按预期工作。

但是一周前,管理员制作了虚拟服务器的快照,并重新加载了它。现在只有MySQL和mssql连接器工作,而Oracle& IBM客户端错误。

Oracle:-28759

Failed : SQLSTATE[HY000]: pdo_oci_handle_factory: ORA-28759: failure to open file (/usr/local/src/php-5.3.3/ext/pdo_oci/oci_driver.c:579)/opt/project/www/test.php149

IBM Informix:-23101

Failed : SQLSTATE=HY000, SQLDriverConnect: -23101 [Informix][Informix ODBC Driver][Informix]Unspecified System Error = -23101./opt/project/www/test.php146

嗯,正如官方文件所说,Informix错误与DB_LOACALE&的丢失的env变量有关。 CLIENT_LOCALE ...等

enter image description here

这很奇怪,因为我一直在使用这个字符串作为我的连接:

     $dbh = new PDO ("informix:host=example.ru; database=some_db; server=db_net; CursorBehavior=0; DB_LOCALE=en_US.57372; CLIENT_LOCALE=en_US.57372;", "db_login", "pass");

我试图为apache(httpd)设置这个env变量,但是这个错误仍然存​​在。现在我在服务器重启后设置了这个变量,但没有成功。可能是我做错了什么或在错误的地方或用户名......

关于Oracle,文档说它与文件加载连接:

enter image description here

并且网络文档说它主要是ssl错误并且与客户端的麻烦有关,无法找到SSL Wallet文件。我有TCPS与钱包的Oracle DB安全连接,我记得让Instant客户端看到正确的位置真的很麻烦。更重要的是,我启用了客户端跟踪,但只有当我直接从终端使用sqlplus时才写入日志。当我运行我的PHP脚本时,我只得到错误而没有日志。

问题:

  1. 如何正确启用Informix变量,或如何解决此问题 问题以不同的方式。

  2. 如何为oracle启用“net tracing” 看看他在找什么?

  3. 如何存储此变量以供将来使用 重新启动/重新加载/快照...等。 ?

2 个答案:

答案 0 :(得分:0)

这可能与文件/目录权限有关,而不是与env变量有关。 oracle错误似乎表明它无法再打开/读取它所需的文件。

informix -23101错误也可能是由于驱动程序无法读取语言环境支持所需的GLS文件引起的。

apache用户是否可以访问Informix Client SDK目录和文件?

答案 1 :(得分:0)

人。 启用所有可能的跟踪并使用“ strace ”命令检查程序失败的位置!!!

感谢LuísMarques!我在我的日志中找到gls并试图为它做链接..真正的IBM / informix / gls ...比另一个msg麻烦... /我从/ usr / informix到我的真实/ opt / IBM / informix以及所有连接成功唤醒的软链接

谢谢你。你真的帮助我完成了这个麻烦。我发布这个作为ansver,但会接受你的,谢谢你! =)