如何修改Ubuntu系统下Apache服务使用的PHP版本?
排查及修复步骤
- 第一步:确认mod_php状态
运行以下命令检查当前Apache启用的PHP模块:
正常输出应该仅显示sudo a2query -m php*php7.0 (enabled),如果仍有php7.4 (enabled)的记录,重新执行禁用操作后重启Apache:sudo a2dismod php7.4 sudo systemctl restart apache2 - 第二步:排查是否使用PHP-FPM模式
现在Ubuntu默认的PHP+Apache配置常使用PHP-FPM而非传统的mod_php,你之前修改的mod_php开关在此场景下不生效。
先检查是否启用了FPM相关模块:
如果两个模块均为enabled状态,说明使用FPM模式,执行以下操作切换版本:sudo a2query -m proxy_fcgi setenvif- 安装PHP7.0的FPM包:
sudo apt install php7.0-fpm- 禁用PHP7.4的FPM配置,启用PHP7.0的FPM配置:
sudo a2disconf php7.4-fpm sudo a2enconf php7.0-fpm- 重启相关服务:
sudo systemctl restart apache2 php7.0-fpm - 第三步:检查虚拟主机的自定义配置
如果你为站点单独配置了虚拟主机,检查对应站点的配置文件(一般位于/etc/apache2/sites-available/目录下),是否有手动指定PHP版本的Handler规则,例如:
将上述规则中的版本号改为7.0后保存,重启Apache生效。SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost" - 第四步:清除缓存验证
先使用浏览器隐私窗口访问phpinfo()页面,避免本地浏览器缓存导致显示旧版本。如果开启了OPcache,重启Apache或PHP-FPM服务即可清空缓存。
你可以通过phpinfo()返回结果中的Server API字段确认当前运行模式:显示Apache 2.0 Handler为mod_php模式,显示FPM/FastCGI为PHP-FPM模式。
内容的提问来源于stack exchange,提问作者Noniq
相关产品推荐
相关产品推荐

