ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-10-11 05:31:19  阅读:303  来源: 互联网

标签:php ldap apache2 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调试消息?

解决方法:

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

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

标签:php,ldap,apache2,stderr
来源: https://codeday.me/bug/20191011/1890468.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有