Mac系統php -v和phpinfo() 輸出的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

即可
具體過程:

1、查看當前php版本

php -v

得到以下輸出:

PHP 7.4.11 (cli) (built: Oct  1 2020 23:30:54) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.11, Copyright (c), by Zend Technologies

2、查看php安裝位置

which php  或者執行  whereis php

得到以下輸出

/usr/local/Cellar/php/7.4.11/bin/php

3、查看php-fpm 版本和安裝位置

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.4.11/bin:/usr/local/Cellar/php/7.4.11/sbin:${PATH}

如果系統使用的是zsh,就在~/.zshrc文件最后添加:

source ~/.bash_profile

或直接將上述路徑配置設置在~/.zshrc文件中。
然后執行source ~/.zshrc使配置生效

5、查看當前php-fpm版本

php-fpm -v
結果:
PHP 7.4.11 (fpm-fcgi) (built: Oct  1 2020 23:31:04)
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.11, Copyright (c), by Zend Technologies

已經自動加載高版本的php-fpm了。

6、重啟php-fpm

終止后台運行的php-fpm進程

sudo killall php-fpm
然后執行 啟動php-fpm並后台運行:
sudo php-fpm -D

此時phpinfo輸出的php版本信息就是最新的7.4版本

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM