0

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

4

1 回答 1

2

不确定您是否使用 OpenLDAP 或其他符合 ldap 的服务器,但对于 OpenLDAP (slapd),您不需要执行任何特殊配置步骤即可从远程计算机连接到服务器 - 服务器侦听所有可用网络端口 389 ( ldap:// ) 和 636 ( ldaps:// - ldap over SSL ) 上的接口。

您可以在此处阅读有关 slapd 网络配置的更多信息。

我怀疑您有网络、DNS 解析或防火墙问题。

尝试使用telnet从终端客户端或命令提示符检查网络连接,如下所示:

telnet YOUR_SERVER_ADDRESS 389

您应该从 ldap 服务器得到一堆废话,而 telnet 客户端应该等待您的进一步输入。如果您看到其他任何内容,例如连接被拒绝并且 telnet 客户端退出,则意味着防火墙阻止了您的通信,或者您无法联系远程计算机。或者,您已将 slapd 客户端配置为仅侦听特定接口或 IP 地址。

我建议尝试使用 IP 地址而不是 DNS 主机名的 telnet 命令来消除任何可能的 DNS 相关问题。

于 2013-07-13T11:31:20.263 回答