php版本不一致是因為系統自帶的php版本和新安裝的php進階版本同時存在,終端機和phpinfo載入的檔案位置不一致導致的,其解決方案就是將高版本php安裝目錄下的高版本“php-fpm”安裝目錄也加到終端機設定檔。
推薦:《PHP影片教學》
這個的問題就是系統自帶的php版本和新安裝的php進階版本同時存在,終端機和phpinfo()載入的檔案位置不一致導致。
其中,
nginx服務解析phpinfo()是依賴php-fpm實作的,所以phpinfo()輸出的是php-fpm啟動的版本;
##而終端機執行php -v是載入終端設定檔中設定的php安裝目錄對應的php版本的;
啟動的php-fpm版本和終端機配置的php版本不一致。
直接的解決方法就是將高版本php安裝目錄下的高版本php-fpm安裝目錄也加到終端設定文件,讓系統自動載入高版php-fpm即可。 快速解決:配置~/.bash_profile:export PATH=/usr/local/Cellar/php@7.2/7.2.23/bin:/usr/local/Cellar/php@7.2/7.2.23/sbin:${PATH}如果系統使用的是zsh,就在
~/.zshrc檔案最後添加:
source ~/.bash_profile然後再執行
source ~/.zshrc使設定生效,並重新啟動php-fpm
sudo killall php-fpm
sudo php-fpm -D即可具體過程:1、查看目前php版本
php -v得到以下輸出:
PHP 7.2.23 (cli) (built: Oct 10 2019 10:15:26) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.23, Copyright (c) 1999-2018, by Zend Technologies2、查看php安裝位置
which php或
whereis php得到以下輸出:
/usr/local/Cellar/php@7.2/7.2.23/bin/php3、查看php-fpm 版本和安裝位置
php-fpm -v得到以下輸出:
PHP 5.6.30 (fpm-fcgi) (built: Oct 29 2017 20:31:21) Copyright (c) 1997-2016 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
which php-fpm得到以下輸出:
/usr/sbin/php-fpm以上查看一遍後,發現php載入的安裝目錄是新安裝的php進階版本,而php-fpm 還是mac系統自帶的低版本,原因是在系統終端設定檔中配置了新版本php安裝位置,但沒有設定php-fpm的安裝位置,導致啟動php-fpm時自動載入的是系統低版的php-fpm,當php框架依賴高版php時,就會無法運作。 4、設定新版本php-fpm載入目錄設定
~/.bash_profile:
export PATH=/usr/local/Cellar/php@7.2/7.2.23/bin:/usr/local/Cellar/php@7.2/7.2.23/sbin:${PATH}如果系統使用的是zsh,就在
~/.zshrc檔案最後新增:
source ~/.bash_profile或直接將上述路徑配置設定在
~/.zshrc檔案中。
source ~/.zshrc使設定生效
(base) qingshan@qingshan ~ php-fpm -v PHP 7.2.23 (fpm-fcgi) (built: Oct 10 2019 10:15:34) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.23, Copyright (c) 1999-2018, by Zend Technologies已經自動載入高版本的php -fpm了。 6、重啟php-fpm終止後台運行的php-fpm程序
sudo killall php-fpm啟動php-fpm並後台運行:
sudo php-fpm -D此時phpinfo輸出的php版本資訊就是最新的7.2版本
以上是php -v和phpinfo() 輸出的php版本不一致是怎麼回事的詳細內容。更多資訊請關注PHP中文網其他相關文章!