这个的问题就是系统自带的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}
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}
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
6、重启PHP-fpm
sudo killall PHP-fpm
sudo PHP-fpm -D
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。