如何从mod_php查看PHP的ldap_ *函数的stderr(带有LDAP_OPT_DEBUG_LEVEL = 7)

时间:2014-02-18 15:04:51

标签: php apache2 ldap stderr

我可以从PHP 5.4.16 CLI运行以下命令:

ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
$conn = ldap_connect($hostname);
ldap_bind($conn, $ldaprdn);

我会得到很多调试输出到stderr,就像这样开始:

ldap_create
ldap_url_parse_ext(ldaps://ldap.example.com)
ldap_bind_s
ldap_simple_bind_s
ldap_sasl_bind_s
ldap_sasl_bind
ldap_send_initial_request
...

这非常适合在CLI上进行调试。但是,我需要在Apache 2.2.15 mod_php中进行调试,因为我看到那里的间歇性LDAP连接无法在命令行上重现。

想到我可以从Web服务器运行相同的代码,并在Apache的错误日志中看到调试信息,但消息没有显示在那里。 PHP错误/警告肯定会转到错误日志,我尝试了error_reporting(-1),但无法将这些调试消息显示在任何地方。

在Apache下运行时,有什么方法可以看到那些stderr调试消息吗?

1 个答案:

答案 0 :(得分:2)

答案是那些消息记录,但是不同的日志文件比error_log()消息所记录的那样。在我的Apache conf中,每个虚拟主机都有自己的错误日志文件。还有一个全局错误日志文件,其中显示Apache启动/关闭消息。

我在虚拟主机上运行这些LDAP调试脚本,并期望错误输出转到主机定义的错误日志...就像所有其他错误消息一样。但由于某些原因,这些ldap调试行被发送到全局错误日志。