LDAP 命令在未启用 ldap_mod 的情况下仍然有效
LDAP commands are still working without ldap_mod enabled
当我尝试使用 LDAP 凭据登录时,我的(开发)站点一直挂起。使用 xdebug,我能够将挂起精确定位到特定代码行,即对 ldap_bind(...)
的调用。经过几天的尝试理解它挂起的原因后,我的调试技术之一是禁用 mod_ldap,然后尝试让任何错误显示在 apache 日志中(在这开始之后,apache 错误日志没有'执行此 http 请求时未记录任何错误;它也是 'hangs')。
我做了什么
我禁用了该模块(sudo a2dismod mod_ldap
),重新启动了服务器(sudo service apache2 restart
),并确认该模块未启用(apache2ctl -M
不显示mod_ldap
)
问题
它在到达 ldap_bind()
时仍然挂起,但是,它甚至不应该到达那个点,因为没有 mod_ldap,我的代码甚至不应该成功调用 ldap_connect()
(对吗?)返回 (resource) resource id='5' type='ldap link'
(表示调用成功)。我期待 NoMethod 或 Function 错误。
为什么 php 可以调用未启用的模块,我该如何停止该行为?
版本
Ubuntu 14.04
Apache 2.4.7
PHP 5.5.9-1ubuntu4.5
好吧,事实证明,我对发生的事情只有一个新手的理解。我从来没有想过 ldap_connect()
作为 php 调用与 mod_ldap
或任何 apache 模块无关。因此,disabling/enabling apache mods 没有做任何事情,因为...它与 apache mods 无关。
所以...我能够使用
禁用 ldap php 扩展
sudo php5dismod ldap
并且能够通过
检查它是否被禁用
php -m
果然,在重新启动服务器后,运行 我的脚本导致了 ldap_connect()
的 No function 错误(就像我 expecting/hoping 一样)。现在我只需要弄清楚为什么 ldap_bind()
挂起...
当我尝试使用 LDAP 凭据登录时,我的(开发)站点一直挂起。使用 xdebug,我能够将挂起精确定位到特定代码行,即对 ldap_bind(...)
的调用。经过几天的尝试理解它挂起的原因后,我的调试技术之一是禁用 mod_ldap,然后尝试让任何错误显示在 apache 日志中(在这开始之后,apache 错误日志没有'执行此 http 请求时未记录任何错误;它也是 'hangs')。
我做了什么
我禁用了该模块(sudo a2dismod mod_ldap
),重新启动了服务器(sudo service apache2 restart
),并确认该模块未启用(apache2ctl -M
不显示mod_ldap
)
问题
它在到达 ldap_bind()
时仍然挂起,但是,它甚至不应该到达那个点,因为没有 mod_ldap,我的代码甚至不应该成功调用 ldap_connect()
(对吗?)返回 (resource) resource id='5' type='ldap link'
(表示调用成功)。我期待 NoMethod 或 Function 错误。
为什么 php 可以调用未启用的模块,我该如何停止该行为?
版本
Ubuntu 14.04
Apache 2.4.7
PHP 5.5.9-1ubuntu4.5
好吧,事实证明,我对发生的事情只有一个新手的理解。我从来没有想过 ldap_connect()
作为 php 调用与 mod_ldap
或任何 apache 模块无关。因此,disabling/enabling apache mods 没有做任何事情,因为...它与 apache mods 无关。
所以...我能够使用
禁用 ldap php 扩展sudo php5dismod ldap
并且能够通过
检查它是否被禁用php -m
果然,在重新启动服务器后,运行 我的脚本导致了 ldap_connect()
的 No function 错误(就像我 expecting/hoping 一样)。现在我只需要弄清楚为什么 ldap_bind()
挂起...