【发布时间】:2015-10-16 07:46:33
【问题描述】:
为了不浪费您的时间,我将描述我所拥有的 && 我现在所拥有的。我的应用程序是用 php 编写的。他们住在带有 nginx + apache web 服务器的 redhat6 服务器上。我们将数据存储在 MySQL DB 中,但我们有很多从 Oracle 和 IBM Informix DB 和 mssql 导入的数据。对于 Oracle 和 Informix,我已经安装了客户端和编译库 pdo_oci.so 和 pdo_informix.so 。几个月来,他们按预期工作。
但一周前,管理员制作了虚拟服务器的快照,然后重新加载了它。现在只有 MySQL 和 mssql 连接器可以工作,Oracle 和 IBM 客户端会报错。
甲骨文:-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 和 CLIENT_LOCALE...等丢失的环境变量有关。
这很奇怪,因为一直以来我都在使用这个字符串进行连接:
$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) 设置此环境变量,但此错误仍然存在。现在我在服务器重启后设置了这个变量,但没有成功。可能是我做错了什么或在错误的地方或用户名...
关于 Oracle ,文档说它与文件加载有关:
而且web doc说它主要是ssl错误并且与客户端的故障有关,即找不到SSL Wallet文件。我有通过钱包到 Oracle DB 的 TCPS 安全连接,我记得让 Instant 客户端查看正确的位置是一个真正的麻烦。不仅如此,我还启用了客户端跟踪,但只有当我直接从终端使用 sqlplus 时它才会写入日志。当我运行我的 php 脚本时,我只收到错误,没有日志。
问题:
如何正确启用 Informix 变量,或如何解决此问题 以不同的方式发行。
如何为 oracle 启用“网络跟踪”,以 看看他在找什么?
- 如何存储这些变量以备将来使用 重新启动/重新加载/快照...等。 ?
【问题讨论】:
-
仍然没有评论... =(
标签: php linux oracle redhat informix