【发布时间】:2011-12-19 11:45:42
【问题描述】:
我有一个在 Windows XP 上的 Apache 上运行的 PHP 脚本,它可以成功地进行 LDAP 身份验证。我将这个相同的脚本复制到 Linux Red Hat 上的 Apache,现在 ldap_bind 调用给了我以下错误:
警告:ldap_bind() [function.ldap-bind]:无法绑定到服务器:无法联系 LDAP 服务器
我可以从 Linux 和 Windows 机器 ping LDAP 服务器。
我比较了 PHP、Apache 和 LDAP 版本,发现如下:
Linux Red Hat 机器: PHP版本:5.1.6 阿帕奇版本:2.2.3 LDAP:OpenLDAP,RCS 版本:$ld:ldap.c,v 1.161.2.3 2006/01/01 12:50:08,API 版本 3001,供应商版本 20343
我的本地 Windows 机器: PHP版本:5.3.8 阿帕奇版本:2.2.21 LDAP:OpenLDAP,RCS 版本:$ld:ldap.c 313665 2011/07/25 11:42:53,API 版本 3001,供应商版本 20319
在较早的 Linux 或 Apache 版本上,ldap_bind 是否存在任何已知问题?有没有人知道为什么相同的 PHP 脚本可以从 Windows 机器而不是 Linux 机器成功执行 LDAP 身份验证?
【问题讨论】:
-
这是我的 PHP 代码:$ldaphost="ldap://some.server.com:3268"; if (!($connect = ldap_connect($ldaphost))) { die ("Could not connect to LDAP server"); } if ($connect) { $result = ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3); } $ldapbind = ldap_bind($connect, $username, $password);