Mac M2系統下使用Brew安裝php后,手動編譯安裝php-redis擴展卻無法在phpinfo()中顯示的疑難解答
在 macos M2 系統上,使用 Homebrew 安裝 PHP 后,一些用戶在手動編譯并安裝 php-redis 擴展時遇到問題:命令行可以正常使用 redis 擴展,php -m 命令也能顯示 redis,php -r “if (new Redis() == true){ echo “rn OK rn”; }” 命令也返回 OK,但 phpinfo() 卻無法顯示 redis 相關信息。
已確認 php.ini 文件路徑為 /opt/homebrew/etc/php/7.3/php.ini,并通過 php -i | grep Loaded 驗證了該文件已加載,且已在其中添加了 extension=redis 配置。
問題根源可能在于 PHP 配置文件與 CLI 環境的差異,以及PHP-FPM的配置。以下提供排查步驟:
立即學習“PHP免費學習筆記(深入)”;
-
驗證PHP版本一致性: 使用 php -v 查看命令行 PHP 版本,然后通過瀏覽器訪問 phpinfo() 頁面,確認 Web 服務器使用的 PHP 版本是否與命令行版本一致。版本不一致是常見原因。
-
檢查PHP-FPM配置: 如果使用 PHP-FPM,需檢查其配置文件(通常位于 /opt/homebrew/etc/php/7.3/php-fpm.d/ 目錄下),確保其加載了正確的 php.ini 文件,并且該文件中包含 extension=redis 配置。
-
重啟Web服務器: 修改配置文件后,務必重啟 Web 服務器使更改生效(例如,使用 sudo nginx -s reload 重啟 nginx)。
-
確認擴展文件路徑: 檢查 php.ini 文件中 extension_dir 的設置是否正確,并確保 redis.so 文件位于該目錄下。使用 php -i | grep extension_dir 查看當前擴展目錄。
-
權限問題: 確保 Web 服務器擁有讀取 redis.so 文件和 php.ini 文件的權限。如有必要,調整文件權限。
-
編譯選項: 確認編譯php-redis時使用的PHP版本與系統PHP版本一致,并且編譯參數正確。
如果以上步驟仍無法解決問題,建議檢查系統日志和 PHP 錯誤日志,獲取更詳細的錯誤信息,以便進一步排查。 仔細檢查每個步驟,確保所有配置都正確無誤。