在使用 phpMyAdmin 或其他 PHP 應用時,經常會遇到「無法載入 mcrypt 擴展,請檢查 PHP 配置」的錯誤提示。這個問題在 Windows 環境下尤為常見,尤其是早期 PHP 5.x 版本。本文將系統梳理導致此錯誤的常見原因,並提供徹底的解決方案,幫助你快速恢復開發環境。
雖然 mcrypt 是加密擴展,但部分整合環境(如早期的 AppServ、XAMPP)會將 MySQL 服務狀態與 PHP 擴展載入綁定檢查。請確認:
.err 文件)libmcrypt.dllPHP 的 mcrypt 擴展依賴 libmcrypt.dll 動態鏈接庫。在 Windows 系統中,PHP 會在以下路徑搜尋該文件:
C:\Windows\System32(64 位系統為 C:\Windows\SysWOW64)解決方法: 從 PHP 安裝目錄(如 D:\php)複製 libmcrypt.dll 到 C:\Windows\System32,然後重啟 Web 服務(Apache/IIS/Nginx)。
php.ini 中未啟用 mcrypt 擴展打開 PHP 配置文件 php.ini(通常位於 PHP 安裝目錄或 C:\Windows),搜尋:
;extension=php_mcrypt.dll
將行首分號 ; 移除以啟用擴展:
extension=php_mcrypt.dll
修改後務必重啟 Web 服務使配置生效。
權限問題可能導致 PHP 無法讀取 MySQL 相關文件,間接觸發擴展載入失敗。建議設置如下權限:
修改權限後,重啟 MySQL 服務與 Web 服務,建議直接重啟伺服器確保生效。
這是網上較少提及但極其關鍵的一步。在 Windows XP/2003 等舊系統中,PHP 可能無法正確定位 php.ini。需手動添加系統環境變量:
phprcD:\php)設置完成後重啟伺服器,PHP 即能正確讀取配置文件並載入擴展。
依次執行以下步驟確認問題解決:
php -m | findstr mcrypt,若輸出 mcrypt 則擴展已載入phpinfo.php 文件,內容為 ,瀏覽器訪問搜尋「mcrypt」區塊注意: mcrypt 擴展自 PHP 7.1 起被棄用,PHP 7.2 移除內建支持。現代項目建議改用 OpenSSL 或 Sodium(PHP 7.2+ 內建)進行加密操作。若維護舊專案,可考慮使用 PECL 安裝 mcrypt 兼容包,但長遠規劃應遷移至現代加密庫。