如何解决php -v与phpinfo()显示PHP版本不一致问题
问题核心原因
sudo update-alternatives --config php 仅修改 命令行(CLI)环境 下的默认PHP版本指向,和Apache服务加载的PHP运行模块是完全独立的两套配置,不会自动修改Web服务使用的PHP版本,这就是你执行完版本选择、重启Apache后Web端phpinfo仍显示8.0.19的根本原因。
修复操作
根据你环境使用的PHP运行模式,选择对应步骤执行:
模式1:Apache 内置模块运行PHP(Ubuntu默认安装的最常见模式)
依次执行以下命令切换Apache加载的PHP版本:
# 禁用当前加载的PHP8.0模块 sudo a2dismod php8.0 # 启用PHP8.1模块 sudo a2enmod php8.1 # 重启Apache服务使配置生效 sudo systemctl restart apache2
模式2:PHP-FPM 模式对接Apache
如果你的环境使用FPM方式解析PHP,执行以下命令切换版本:
# 禁用旧版PHP8.0-FPM的Apache对接配置 sudo a2disconf php8.0-fpm # 启用新版PHP8.1-FPM的Apache对接配置 sudo a2enconf php8.1-fpm # 停止旧版FPM服务,启动新版FPM服务 sudo systemctl stop php8.0-fpm sudo systemctl start php8.1-fpm # 配置新版FPM开机自启(可选操作) sudo systemctl enable php8.1-fpm # 重启Apache服务加载新配置 sudo systemctl restart apache2
生效验证
- 执行命令
apache2ctl -M | grep php,查看输出结果,确认当前Apache加载的PHP模块/配置对应版本为8.1 - 清空浏览器本地缓存、PHP OPcache缓存后,刷新phpinfo页面,即可看到Web端PHP版本已切换为8.1
补充说明:命令行PHP版本和Web端PHP版本的配置完全独立,如果你需要两边版本保持一致,你之前执行的
update-alternatives选择PHP8.1的操作是正确的,该操作不会影响Web端配置,需要分别调整。
内容的提问来源于stack exchange,提问作者Shaho
相关产品推荐
相关产品推荐

