我正在使用OpenLDAP并尝试使用下面提到的来自另一台服务器的PHP代码连接(和绑定)到ldap并且它失败了。但是使用这段代码,它可以从同一台服务器成功连接(和绑定)。
$ldaphost = "server_name"; // 127.0.0.1 when using same server and changing the value when using different server
$ldapport = 389;
$ldapconn = ldap_connect($ldaphost, $ldapport);
if ($ldapconn) {
echo 'Connected <br/>';
$userdn = "cn=manager,ou=Team,dc=example,dc=com";
$password = "password";
$bind = ldap_bind($ldapchtgoponn, $userdn, $password);
if ($bind) {
echo "Bind Successful";
} else {
echo "Error in bind";
}
}
我是否需要设置任何与不同服务器的LDAP连接?
答案 0 :(得分:2)
不确定您是使用OpenLDAP还是其他符合ldap标准的服务器,但对于OpenLDAP(slapd),您不需要执行任何特殊配置步骤即可从远程计算机连接到服务器 - 服务器侦听端口389(ldap://)和636(ldaps:// - 通过SSL的ldap)上的所有可用网络接口。
您可以阅读有关slapd here的网络配置的更多信息。
我怀疑您有网络,DNS解析或防火墙问题。
尝试使用telnet
检查来自终端客户端或命令提示符的网络连接,如下所示:
telnet YOUR_SERVER_ADDRESS 389
你应该从ldap服务器获得一堆废话,telnet客户端应该等待你的进一步输入。如果您看到其他任何内容,例如连接被拒绝,并且telnet客户端退出则意味着有防火墙阻止您的通信,或者您无法联系远程计算机。或者,您已将slapd客户端配置为仅侦听特定接口或IP地址。
我建议使用IP地址而不是DNS主机名尝试telnet命令,以消除任何可能的DNS相关问题。