Bry*_*yan 5 php oracle pecl oci8
所以在MUCH $ head-> desk()之后,我已经解决了.
记住孩子,要警惕你使用的即时客户端版本,这取决于虚拟化设置!
我一直在安装通用的即时客户端(不知道我们的ESX服务器位于AMD处理器上,而不是英特尔),而且内部工作正常(CentOS安装是32位,因为我们的内部ESXi服务器不是64位).好吧,即使您在位于AMD64上的虚拟化服务器上运行32位安装,您安装的即时客户端仍然很重要.
这是我想要检查的最后一件事但是看起来现在一切都运行正常.
我要感谢所有帮助我完成所有可能测试的人,但最终,我没有意识到虚拟化的差异.
更新(2010年5月21日) 当我在内部安装新VM时,我认为这个错误已经逃脱了,但我现在发现了一个缩小的链接.
当我发布这个时,我试图在我们的生产服务器上安装它.经过一周没有进展并且需要重新开发之后,我在我们的内部服务器上配备了一个全新安装的Crap ... CentOS,以及全新安装的即时客户端和oci8.
工作得很完美.
但是,我们只是将VM的精确副本上传到我们的生产服务器,它神奇地不再有效.尝试重新安装一切,无济于事.
所以我唯一可以解决的问题是防火墙问题(虽然我在尝试127.0.0.1时遇到同样的问题)或可能是ESX(我们的生产服务器)服务器问题,但内部服务器正在运行ESXi.
有什么想法吗?
更新(2010年3月8日)我安装了Xdebug并让它跟踪我的代码.这是我得到的输出:
TRACE START [2010-03-08 17:53:05]
0.2090 327864 -> {main}() /data/aims3/http/octest.php:0
0.2091 327988 -> ini_set(string(14), string(1)) /data/aims3/http/octest.php:3
0.2093 327920 -> error_reporting(long) /data/aims3/http/octest.php:4
0.2094 328048 -> oci_connect(string(8), string(8), string(25)) /data/aims3/http/octest.php:6
Run Code Online (Sandbox Code Playgroud)
跟踪在此时停止.
我已经在本地服务器上以相同的方式安装了一切,它工作正常.说我完全失败就会轻描淡写.
*注意:我运行了make test并且在每次测试时都返回了FAIL.我从来没有在我的工作机器上运行它,看它是否报告相同的错误.知道为什么make test会报告FAIL但是make不会报告任何错误吗?
我已经安装了没有报告错误的Oracle Instantclient以及OCI8 PECL软件包而且不知所措.每当我尝试使用oci_connect打开连接时,它都会暂停我的整个PHP脚本.
例:
<?php
ini_set ("display_errors", "1");
error_reporting(E_ALL);
echo "before";
$conn = oci_connect("username", "password", "host");
echo "after";
?>
Run Code Online (Sandbox Code Playgroud)
返回一个完整的空白页面.加载模块(在phpinfo中看到),所有安装都没有错误.
我完全失去了.
CentOS:5.4
Apache:2.2.3
PHP:5.3.1
InstantClient:11.2
oci8:1.4.1
有什么想法吗?
笔记
Apache错误日志没有任何报告
尝试调试:
1:
<?php
ini_set ("display_errors", "1");
error_reporting(E_ALL);
echo "before";
if(!function_exists('oci_connect')) die('Oracle Not Installed');
echo "after";
?>
Run Code Online (Sandbox Code Playgroud)
返回:
beforeafter
Run Code Online (Sandbox Code Playgroud)
2:
将主机更改为//主机
返回:
同样的错误
归档时间: |
|
查看次数: |
8301 次 |
最近记录: |