gpt4 book ai didi

php - PHP 中的 oci_connect 空白页

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:40:10 26 4
gpt4 key购买 nike

更新 (5/21/2010) 成功!

所以经过多次 $head->desk()'ing,我已经解决了它。

记住 children ,要注意你使用的即时客户端版本,这取决于虚拟化设置!

我一直在安装通用的 Instant Client(不知道我们的 ESX 服务器安装在 AMD 处理器上,而不是 Intel)并且在内部运行良好(CentOS 安装是 32 位的,因为我们的内部 ESXi 服务器不是 64 位的) .瞧瞧,即使您在 AMD64 上的虚拟服务器上运行 32 位安装,安装什么即时客户端仍然很重要。

这是我最不想检查的事情,但现在看来,一切都运行良好。

我要感谢所有帮助我完成所有可能的测试以解决这个问题的人,但最终,我没有意识到虚拟化中的差异是我的错。


更新 (5/21/2010)当我在内部将它安装到一个新的 VM 上时,我以为这个错误已经逃脱了我,但我现在发现了一个缩小的链接。

当我发布这个时,我正试图在我们的生产服务器上安装它。在一周没有进展并且需要重新开始开发之后,我在我们的内部服务器上配备了一个虚拟机,其中安装了全新的 Crap...CentOS,以及全新安装的即时客户端和 oci8。

完美运行。

然而,我们刚刚将 VM 的精确副本上传到我们的生产服务器,它神奇地不再工作了。尝试重新安装所有内容,但无济于事。

所以我唯一可以缩小范围的是防火墙问题(虽然我在尝试 127.0.0.1 时遇到了同样的问题)或者可能是 ESX(我们的生产服务器)服务器问题,内部服务器正在运行 ESXi。

有什么想法吗?

更新 (3/8/2010) 我安装了 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

跟踪在该点停止。

我已经在本地服务器上以相同的方式安装了所有东西,并且运行良好。说我完全不知所措是轻描淡写。


*注意:我运行了 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";
?>

返回一个完整的空白页。模块已加载(在 phpinfo 中看到)并且所有安装都没有错误。

我完全不知所措。

中央操作系统:5.4

Apache :2.2.3

PHP:5.3.1

即时客户端: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";
?>

返回:

beforeafter

2:

将主机更改为//主机

返回:

同样的错误

最佳答案

Apache 的error_log 里有什么吗?这是 mod_php 或 FastCGI 还是普通的 CGI PHP?如果您通过命令行运行脚本会发生什么?

您也可以尝试设置 PHP's error log并往里看。


EDIT1:尝试:

echo "before";
if(!function_exists('oci_connect')) die('Oracle Not Installed');

并发布结果...


EDIT2:我真的不确定。我最好的选择是来自 the PHP manual 的信息:

The most common problem with installing OCI8 is not having the Oracle environment correctly set. This typically appears as a problem using oci_connect() or oci_pconnect(). The error may be a PHP error such as Call to undefined function oci_connect(), an Oracle error such as ORA-12705, or even an Apache crash. Check the Apache log files for startup errors and see the sections above to resolve this problem.

还有其他人有什么想法可以帮助 Bryan 吗?

关于php - PHP 中的 oci_connect 空白页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2389569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com