在mac m2上使用brew安裝的php手動編譯安裝php-redis后,phpinfo()中為什么沒有顯示redis模塊?
在mac m2上使用brew安裝php并手動編譯安裝php-redis后,用戶發現盡管在命令行中通過php -m命令和php -r腳本確認redis模塊已經正確安裝和加載,但當嘗試通過phpinfo()函數查看php配置時,redis模塊卻并未在頁面上顯示出來。用戶已經確認在php.ini文件中添加了extension=redis的配置,并且通過php -i | grep loaded命令驗證了配置文件路徑正確。
問題的原因可能在于,當通過brew安裝php時,默認的php配置文件路徑和手動編譯安裝的擴展模塊路徑可能存在差異。具體來說,盡管在/opt/homebrew/etc/php/7.3/php.ini中添加了extension=redis,但如果redis模塊的動態鏈接庫(.so文件)不在php能夠查找的路徑中,php就無法正確加載該擴展。
為了解決這個問題,用戶需要確保redis模塊的動態鏈接庫文件路徑正確,并且在php的配置文件中正確指定該路徑。以下是解決步驟:
-
確認redis模塊的路徑:在編譯php-redis擴展時,動態鏈接庫文件(如redis.so)通常會被編譯到某個目錄中。可以通過查找該文件的位置來確認,例如:
find / -name "redis.so"
假設找到的路徑為/usr/local/lib/php/extensions/no-debug-non-zts-20180731/redis.so。
立即學習“PHP免費學習筆記(深入)”;
-
更新php.ini文件:編輯/opt/homebrew/etc/php/7.3/php.ini文件,確保extension指令指向正確的redis模塊路徑:
extension=/usr/local/lib/php/extensions/no-debug-non-zts-20180731/redis.so
- 重啟php服務:如果php通過某個服務運行(如apache或nginx),請重啟該服務以確保新的配置生效。
- 驗證:再次運行phpinfo(),應該能夠在輸出的頁面中看到redis模塊的相關信息。
通過上述步驟,用戶應該能夠在phpinfo()輸出中看到redis模塊,從而確認redis擴展已經成功加載并生效。