在mac M2上使用brew安裝的PHP手動(dòng)編譯安裝php-redis后,為什么phpinfo()中沒有顯示redis模塊?

在mac m2上使用brew安裝的php手動(dòng)編譯安裝php-redis后,phpinfo()中為什么沒有顯示redis模塊?

在mac m2上使用brew安裝php并手動(dòng)編譯安裝php-redis后,用戶發(fā)現(xiàn)盡管在命令行中通過php -m命令和php -r腳本確認(rèn)redis模塊已經(jīng)正確安裝和加載,但當(dāng)嘗試通過phpinfo()函數(shù)查看php配置時(shí),redis模塊卻并未在頁面上顯示出來。用戶已經(jīng)確認(rèn)在php.ini文件中添加了extension=redis的配置,并且通過php -i | grep loaded命令驗(yàn)證了配置文件路徑正確。

問題的原因可能在于,當(dāng)通過brew安裝php時(shí),默認(rèn)的php配置文件路徑和手動(dòng)編譯安裝的擴(kuò)展模塊路徑可能存在差異。具體來說,盡管在/opt/homebrew/etc/php/7.3/php.ini中添加了extension=redis,但如果redis模塊的動(dòng)態(tài)鏈接庫(.so文件)不在php能夠查找的路徑中,php就無法正確加載該擴(kuò)展。

為了解決這個(gè)問題,用戶需要確保redis模塊的動(dòng)態(tài)鏈接庫文件路徑正確,并且在php的配置文件中正確指定該路徑。以下是解決步驟:

  1. 確認(rèn)redis模塊的路徑:在編譯php-redis擴(kuò)展時(shí),動(dòng)態(tài)鏈接庫文件(如redis.so)通常會(huì)被編譯到某個(gè)目錄中??梢酝ㄟ^查找該文件的位置來確認(rèn),例如:

    find / -name "redis.so"

    假設(shè)找到的路徑為/usr/local/lib/php/extensions/no-debug-non-zts-20180731/redis.so。

    立即學(xué)習(xí)PHP免費(fèi)學(xué)習(xí)筆記(深入)”;

  2. 更新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
  3. 重啟php服務(wù):如果php通過某個(gè)服務(wù)運(yùn)行(如apachenginx),請(qǐng)重啟該服務(wù)以確保新的配置生效。
  4. 驗(yàn)證:再次運(yùn)行phpinfo(),應(yīng)該能夠在輸出的頁面中看到redis模塊的相關(guān)信息。

通過上述步驟,用戶應(yīng)該能夠在phpinfo()輸出中看到redis模塊,從而確認(rèn)redis擴(kuò)展已經(jīng)成功加載并生效。

以上就是在mac M2上使用brew安裝的PHP手動(dòng)編譯安裝php-

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享