我可以从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调试消息吗?
答案 0 :(得分:2)
答案是那些消息被记录,但是不同的日志文件比error_log()
消息所记录的那样。在我的Apache conf中,每个虚拟主机都有自己的错误日志文件。还有一个全局错误日志文件,其中显示Apache启动/关闭消息。
我在虚拟主机上运行这些LDAP调试脚本,并期望错误输出转到主机定义的错误日志...就像所有其他错误消息一样。但由于某些原因,这些ldap调试行被发送到全局错误日志。