LDAP未连接

时间:2013-07-13 10:56:11

标签: php ldap openldap

我正在使用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连接?

1 个答案:

答案 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相关问题。