PHP LINUX WINDOWS ldap_bind在WinXP上成功,但在LINUX上失败



我在Windows XP的Apache上运行了一个PHP脚本,它可以成功地进行LDAP身份验证。我将相同的脚本复制到Linux Red Hat上的Apache上,ldap_bind调用现在给了我以下错误:

警告:ldap_bind() [function。LDAP -bind]: cannot bind to server: Can't contact LDAP server

我可以从Linux和Windows机器上ping LDAP服务器。

我比较了PHP、Apache和LDAP版本,发现如下:

Linux Red Hat机器:PHP版本:5.1.6Apache版本:2.2.3LDAP: OpenLDAP, RCS版本:$ld: LDAP .c, v 1.161.2.3 2006/01/01 12:50:08, API版本3001,厂商版本20343

我的本地Windows机器:PHP版本:5.3.8Apache版本:2.2.21LDAP: OpenLDAP, RCS版本:$ld: LDAP .c 313665 2011/07/25 11:42:53, API版本3001,厂商版本20319

在早期的Linux或Apache版本上ldap_bind是否有任何已知的问题?有人知道为什么相同的PHP脚本可以成功地从Windows机器进行LDAP身份验证,而不是Linux机器吗?

它现在可以在Linux机器上运行。

Windows和Linux机器都在使用OpenLDAP,但是Linux机器上的LDAP没有正确配置为连接到LDAP服务器。修复方法是修改/etc/ldap.conf文件。此文件中的设置设置不正确。试着修改该文件中的设置以匹配Windows中使用的设置。关键设置似乎是端口。该文件中的端口最初设置为389,应该是默认值。将其改为3268。重新启动Apache并再次尝试身份验证,它工作了。还注释掉了'base'参数。不需要Base,因为LDAP在Windows域中。

最新更新