1

当我测试 ldap_bind 时,它可以在我的测试机器上运行,因为它与我的 ldap 服务器在同一个域上,但是当我将代码移动到网络托管时

Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in /home 

我是从与 ldap 服务器在同一域中的浏览器访问它,所以主机应该可以访问 ldap 服务器?

            <?php
            // using ldap bind
            $ldaprdn  = 'user';     // ldap rdn or dn
            $ldappass = 'pass';  // associated password
            // connect to ldap server
            $ldapconn = ldap_connect("server.com")    or die("Could not connect to LDAP server.");
            if ($ldapconn) {
                // binding to ldap server
                $ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
                // verify binding
                if ($ldapbind & strlen($ldappass)>0) {
                   echo "H LDAP bind successful...";
                } else {
                    echo "LDAP bind failed...";
                }
            }
            ?>
4

2 回答 2

0

我这边的几个检查站:

  • 似乎您正在使用 LDAPS,即通过 SSL,因此请确保证书存在于 Web 托管环境中主机的信任库中。
  • 如果你使用主机名而不是 IP,你可以试试这个: $ip = gethostbyname('ldap.example.com'); $ldapconn = ldap_connect($ip);

  • 还要检查 LDAP 端口是否不是默认端口,如果不是默认端口,您可以指定。

于 2013-09-25T09:31:23.890 回答
0

简单的 BIND 操作需要一个 DN,而不仅仅是 DN 的一个组件。

于 2013-09-26T00:31:23.887 回答