簡體   English   中英

即使我編輯了 php.ini 並且 php_ldap.dll 位於正確的位置,也無法啟用 PHP LDAP?

[英]Unable to enable PHP LDAP even though I have edited php.ini and php_ldap.dll is in the right place?

我已經使用 WAMP 安裝工作了很長一段時間,並且啟用了 LDAP,一切都進行得很順利。 現在雖然我必須設置另一台機器,但由於某種原因我無法啟用 LDAP。

我檢查了phpinfo()的輸出,但 LDAP 部分不存在。 我編輯了php.ini以取消注釋該行:

extension = php_ldap.dll

我還檢查了正在搜索擴展名的文件路徑,並且文件php_ldap.dll位於正確的位置。

我敢肯定我編輯正確php.ini ,因為我檢查的文件路徑文件被這些phpinfo() ,也是我能夠成功地啟用/禁用其他擴展。

每次更改后我都重新啟動了 Apache。

在谷歌搜索時,我找到的唯一解決方案是上面的那些,加上一兩次提到編輯 Windows PATH變量以包含php.ini的路徑? 即使它對我沒有意義也嘗試過(因為我已經知道php.ini正在被解析)。 我還檢查了我之前在另一台機器上的安裝,從我所看到的,我從未在該機器上的PATH添加任何 PHP 目錄

編輯完整的答案

下面弗蘭克的回答讓我找到了解決方案,所以我想我現在應該整合所有內容。

在 WAMP 服務器上啟用 LDAP 支持:

  1. php.ini取消注釋extension = php_ldap.dll
  2. 重要提示:通過檢查phpinfo()的輸出,確保您正在編輯正確的php.ini
  3. 檢查php.ini文件以獲取擴展目錄的位置
  4. 檢查php_ldap.dll是否位於該目錄中
  5. 我錯過的步驟)找到文件libeay32.dllssleay32.dll並將它們的目錄添加到 Windows PATH
  6. 重啟阿帕奇。 如果啟用了 LDAP,在phpinfo()的輸出中會有一個關於它的部分

這里有一些提示: http : //php.net/manual/en/ldap.installation.php 請注意,您需要添加另外兩個 DLL libeay32.dllssleay32.dll 您可能還需要使用--with-ldap進行編譯

我遵循了這些說明,但仍然無法在我的 phpinfo() 中加載 LDAP。 Apache 日志在啟動時顯示以下非致命消息: ######/php5.4.16/ext/php_ldap.dll - The specified module could not be found. in Unknown on line 0 ######/php5.4.16/ext/php_ldap.dll - The specified module could not be found. in Unknown on line 0

最后,我再次查看了 phpinfo(),發現使用的是系統變量 PATH 而不是我的用戶變量 PATH,並且它沒有包含到 PHP 根目錄和 PHP 擴展文件夾的正確路徑。 只需將它們添加到####\\php\\php5.4.16;####\\php\\php5.4.16\\ext; 並重新啟動Apache,解決了問題。 希望這可以幫助別人。

  1. 查看 PHP 文件夾中的libsasl.dll libeay32.dllssleay32.dll
  2. 如果libeay32.dllssleay32.dll不存在,請從https://code.google.com/archive/p/openssl-for-windows/downloads下載
  3. 將它們復制到 Windows 中的System32文件夾
  4. 現在您可以在phpinfo()上看到 LDAP 部分。 它對我有用。

我的環境
視窗 10
PHP 7.4.3
阿帕奇 2.4.41

我正在使用 phpstorm。 如果找不到評論,只需在 php.ini 頁面底部粘貼“extension = php_ldap.dll”即可。 不客氣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM