2015-06-25 71 views
0

我無法連接到PHP的LDAPS服務器(第三方)(PHP 5.5.4,Apache 2.4,Windows 7 64bit)。當我嘗試使用用戶名和密碼ldap_bind()函數,我收到 - Unable to bind to server: Can't contact LDAP server.無法連接到Windows 7 64位上的PHP 5.5.4的LDAPS服務器,Apache 2.4

我有LDAPS服務器的自簽名證書,但我不知道在哪裏把PEM文件(Base64)或類似conf .file(我已經閱讀了許多答案,但沒有任何適用於我的例子 - 例如c:\openldap\sysconf\ldap.conf,TLS_REQCERT從不等)。

發展文件夾是D:\WebDev其中裏面是\www文件夾項目,並與\Apache文件夾和文件夾\PHP\binaries。 PHP是Apache的一個模塊,Apache由httpd.exe --standalone --console啓動。

Openssl s_client -connect xxxx -CAfile xxxx以LDAPS服務器工作正常,返回碼爲0。沒有-CAfile我fet code 19 (self-signed certificate in certificate chain)

沒有SSL的LDAP對我來說工作正常,我試過一些免費的在線LDAP測試服務器。

回答

0

問題解決了。注意:機器上沒有安裝OpenLDAP。

解決方法是設置Windows系統變量LDAPCONF,值爲例如c:\users\user\.ldaprc並且在文件.ldaprc中設置證書的路徑,例如, TLS_CACERT c:\users\user\.ssh\ldap-ca.pemTLS_REQCERT never,兩者都在工作。

然後從控制檯或通過Apache從瀏覽器連接腳本運行正常。

conf的默認搜索路徑是c:\ users \ user \,但是對於通過Apache運行的瀏覽器應用程序,必須設置系統變量LDAPCONF。

我希望這個幫助!

相關問題