php -v和phpinfo() 输出的php版本不一致是怎么回事
2022-12-02 09:01:16
103
{{single.collect_count}}

php版本不一致是因为系统自带的php版本和新安装的php高级版本同时存在,并且终端和phpinfo加载的文件位置不一致导致的,其解决办法就是将高版本php安装目录下的高版本“php-fpm”安装目录也加到终端配置文件。

php入门到就业线上直播课:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用

推荐:《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 GroupZend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologieswith 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 GroupZend 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 -vPHP 7.2.23 (fpm-fcgi) (built: Oct 10 2019 10:15:34)Copyright (c) 1997-2018 The PHP GroupZend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologieswith 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中文网其它相关文章!

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}