Apache 在未启用LDAP_mod的情况下,LDAP命令仍在运行
当我尝试使用LDAP凭据登录时,我的(开发)站点出现挂起问题。使用xdebug,我能够精确地指出特定代码行的挂起,这是对Apache 在未启用LDAP_mod的情况下,LDAP命令仍在运行,apache,ldap,Apache,Ldap,当我尝试使用LDAP凭据登录时,我的(开发)站点出现挂起问题。使用xdebug,我能够精确地指出特定代码行的挂起,这是对ldap\u bind(…)的调用。经过几天的尝试理解它为什么挂起,我的调试技术之一是禁用mod_ldap,然后尝试在apache日志中显示任何错误(启动后,apache错误日志在执行此http请求时没有记录任何错误;它也“挂起”) 我所做的 我禁用了模块(sudo a2dismod_ldap),重新启动了服务器(sudo service apache2 restart),并确
ldap\u bind(…)
的调用。经过几天的尝试理解它为什么挂起,我的调试技术之一是禁用mod_ldap,然后尝试在apache日志中显示任何错误(启动后,apache错误日志在执行此http请求时没有记录任何错误;它也“挂起”)
我所做的
我禁用了模块(sudo a2dismod_ldap
),重新启动了服务器(sudo service apache2 restart
),并确认模块未启用(apache2ctl-M
未显示mod_ldap
)
问题
当它到达ldap\u bind()
时,它仍然挂起,但是,它甚至不应该到达那个点,因为如果没有mod\u ldap,我的代码甚至不应该成功调用ldap\u connect()
(对吗?),这将返回(资源)资源id='5'type='ldap link'
(意味着调用成功)。我期待一个命名方法或函数错误
为什么php可以调用未启用的模块,我如何停止这种行为
版本
Ubuntu 14.04
Apache 2.4.7
PHP 5.5.9-1ubuntu4.5
事实证明,我对所发生的事情有一个初步的了解。我从未想到
ldap\u connect()
作为php调用与mod\u ldap
或任何apache模块无关。因此,禁用/启用apache mods没有任何作用,因为。。。它与apachemods没有任何关系
所以。。。我能够使用禁用ldap php扩展
sudo php5dismod ldap
并且能够检查它是否已被禁用
php-m
果然,在重新启动服务器后,运行脚本导致ldap\u connect()
出现无功能错误(正如我所期望的那样)。现在我只需要弄清楚为什么ldap\u bind()
挂起