一直在玩這個好幾天,無法讓PHP綁定到Oracle的DSEE上的ldap。PHP無法連接到LDAP Oracle Directory Server企業版
function test(){
// LDAP variables
$ldaphost = "xxx.xxxxx.com";
$ldapport = 636;
$ldaprdn = 'cn=xyxyxyxy,ou=Accounts,dc=xxx,dc=xxxxx,dc=com';
$ldappass = 'vcvcvcvcvc';
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); // isn't helping
// Connecting to LDAP
$ldapconn = ldap_connect($ldaphost, $ldapport)
or die("Could not connect to $ldaphost");
if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}
}
}
我得到的錯誤:
消息:的ldap_bind()[function.ldap綁定]:無法綁定到服務器:無法聯繫LDAP服務器
撕裂我的頭髮在這一個。我只是不能把事情綁定。
已經嘗試了直接telnet到端口636上的主機,並沒有被任何防火牆阻止。特別是我沒有從屏幕上或日誌中的'LDAP_OPT_DEBUG_LEVEL'獲得任何額外的調試信息。
我想象的問題是與dn,確保它是正確的(它可能會嘗試聯繫不同的服務比你的期望)。 – Resorath 2011-05-04 19:54:52
嗯。這就是服務器管理員給我使用的dn。 – phirschybar 2011-05-05 01:14:55
通過telnet連接時,它與php腳本運行在同一臺服務器上嗎?另外,使用'$ ldaphost ='ldaps://xxx.xxx.com'; $ ldapconn = ldap_connect($ ldaphost);'(當使用主機名的URL標識符時''port'參數不在'ldap_connect()'中使用),正如Stefan Gehrig所說。如果你成功建立連接,也許你需要在'ldap_connect()'後面調用ldap_start_tls()' – 2011-05-09 13:58:23