首頁  >  文章  >  後端開發  >  php -v和phpinfo() 輸出的php版本不一致是怎麼回事

php -v和phpinfo() 輸出的php版本不一致是怎麼回事

藏色散人
藏色散人原創
2020-08-15 10:50:314551瀏覽

php版本不一致是因為系統自帶的php版本和新安裝的php進階版本同時存在,終端機和phpinfo載入的檔案位置不一致導致的,其解決方案就是將高版本php安裝目錄下的高版本“php-fpm”安裝目錄也加到終端機設定檔。

php -v和phpinfo() 輸出的php版本不一致是怎麼回事

推薦:《PHP影片教學

這個的問題就是系統自帶的php版本和新安裝的php進階版本同時存在,終端機和phpinfo()載入的檔案位置不一致導致。

其中,

nginx服務解析phpinfo()是依賴php-fpm實作的,所以phpinfo()輸出的是php-fpm啟動的版本;

##而終端機執行

php -v是載入終端設定檔中設定的php安裝目錄對應的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 Technologies

2、查看php安裝位置

which php

whereis php

得到以下輸出:

/usr/local/Cellar/php@7.2/7.2.23/bin/php

3、查看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使設定生效

5、查看目前php-fpm版本

(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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn