PHP ldap_bind失败

时间:2018-02-02 14:59:54

标签: php ldap

使用PHP ldap_bind函数连接到LDAP服务器时遇到了很多麻烦。 这是我的代码:

<?php
error_reporting(E_ALL);

$ldap_ips = [
    '123.456.789.012'
];

$ldapuser = 'cn=Username,ou=Location_A,ou=Location_B,o=CompanyName';  
$ldappass = 'secret';

foreach ($ldap_ips as $ip) {
    testLdap($ip,$ldapuser,$ldappass);
}

function testLdap($ip,$ldapuser,$ldappass) {

    ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);

    fsockopen($ip, 636) or die('failed at port 636');

    $ldapconn = ldap_connect("ldaps://" . $ip . ":636") or die("Could not connect to LDAP server.");

    if ($ldapconn) {

        // Trying to bind to ldap server. Fun stops here...
        $ldapbind = @ldap_bind($ldapconn, $ldapuser, $ldappass);

        var_dump(ldap_error($ldapconn)); // yields: Can't contact LDAP server

        // verify binding
        if ($ldapbind) {
            die('Success! However, this line has never been reached.');
        } 

        // all done? clean up
        ldap_close($ldapconn);

    }
}
?>

网址(ldaps://123.456.789.012:636)在Softerra LDAP浏览器4.5上运行正常,使用&#34;简单&#34;机制。我尝试过的事情包括创建一个名为C:\OpenLDAP\sysconf\ldap.conf的文件,其中包含文本TLS_REQCERT never(在论坛上多次提及)无济于事。

服务器规格:Windows Server 2012,IIS,PHP 7.0.20

有没有人知道可能会发生什么,或者至少如何让PHP返回更多信息而不是&#34;无法联系LDAP服务器&#34;?谢谢!

0 个答案:

没有答案