2011-04-20 92 views
2

在運行Apache 2.2.16和PHP 5.3.3-7和Suhosin的Debian擠壓式生產服務器上,我遇到了一個奇怪的問題。在我的開發機器上,運行XAMPP的Windows 7 64bit,我沒有同樣的問題。將ldap_bind()延遲5秒鐘到Active Directory

的問題是:我使用的是adLDAP PHP API來訪問Windows Active Directory域控制器,並在生產中,有5秒鐘的延遲有時調用的ldap_bind()。我沒有在開發框中找到它 - 並且它們使用相同的細節和憑證訪問相同的LDAP服務器。

ldap_connect()執行正常,但它是ldap_bind(),它給了我錯誤。我通過使用CodeIgniter進行日誌記錄來證實這一點。

任何人都可以指向正確的方向嗎?

回答

2

爲了進一步看看發生了什麼事情,你可以啓用LDAP模塊的調試輸出:

ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); 

5S通常是對服務器的超時。當你說它只是有時發生,並且只在生產時纔會出現,表明問題出現在你的網絡而不是你的代碼中。

+1

感謝您的幫助,調試選項在診斷時非常有用。奇怪的是,我認爲這個問題與DNS相關,儘管dev和prod環境使用相同的DNS服務器。我通過簡單地將在ldap_connect()中調用的LDAP服務器更改爲IP地址而不是FQDN來解決此問題。謝謝你的幫助。 – George 2011-04-20 13:32:50

1

我也有這個問題。這似乎也是我的一個DNS問題。我ping服務器兩次,得到兩個不同的IP地址。一次超時,另一次沒有。我在ldap_connect中使用了良好的IP地址,而不是名稱,問題消失了。