PHP LINUX WINDOWS ldap_bind 在 WinXP 上成功,但在 Linux 上不行

标签 php windows linux ldap

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

警告:ldap_bind() [function.ldap-bind]:无法绑定(bind)到服务器:无法联系 LDAP 服务器

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

我比较了 PHP、Apache 和 LDAP 版本并发现了以下内容:

Linux 红帽机器: PHP版本:5.1.6 Apache 版本: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 Apache 版本: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 计算机上成功进行 LDAP 身份验证,但在 Linux 计算机上却不能?

最佳答案

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

Windows 和 Linux 计算机都使用 OpenLDAP,但 Linux 计算机上的 LDAP 未正确配置为连接到 LDAP 服务器。修复方法是更改​​文件/etc/ldap.conf。该文件中的设置未正确设置。尝试修改此文件中的设置以匹配 Windows 中使用的设置。关键设置似乎是端口。该文件中的端口最初设置为 389,据说是默认值。将其更改为 3268。重新启动 Apache 并再次尝试身份验证,结果成功。还注释掉了“base”参数。不需要 Base,因为 LDAP 位于 Windows 域中。

关于PHP LINUX WINDOWS ldap_bind 在 WinXP 上成功,但在 Linux 上不行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8560834/

相关文章:

javascript - 使用 Ajax 和 php 联系我们的网页

linux - 查找目录/子目录的大小

c++ - 将文本打印到 Windows 输入文本框中

linux - cURL - 扫描网站的源代码

c++ - 编译程序时的错误信息

php - 正则表达式选择的内容超出了我的预期(PHP)

php - 来自 nginx : should the application use it somehow? 的 $ssl_early_data

php - 通过关键交集创建搜索=>替换数组

java - 我不知道如何通过windows命令提示符输入

windows - Win 10 Postgresql 11 数据库集群初始化失败