2013-07-13 136 views
0

我正在使用OpenLDAP並試圖使用下面提到的另一臺服務器的PHP代碼連接(並綁定到)ldap,並且其失敗。但是使用這些代碼,它可以從同一臺服務器成功連接(和綁定)。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連接?

回答

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相關問題。

+0

是的,我正在使用openLDAP。在以上文章中添加了這些信息。 – Debashis

+0

telnet的結果是什麼?你從遠程機器上試過了嗎? –

+0

是的,從遠程機器嘗試遠程登錄。它顯示'連接被拒絕'。 – Debashis