CentOS7下PHP7.4升级至8.1.13后Drupal站点无法访问求助
解决CentOS7升级PHP7.4到8.1后Drupal站点浏览器访问异常问题
问题根源
升级过程中未彻底清理PHP7.4的残留模块和配置文件,导致PHP-FPM加载了API版本不兼容的旧模块,引发扩展加载失败,最终导致站点无法正常处理HTTP请求。
解决方案
1. 彻底清理旧PHP组件与残留文件
- 卸载所有PHP7.4及混合版本的相关包:
sudo yum remove -y php74* php-* --setopt=clean_requirements_on_remove=1 - 删除残留的旧模块文件和配置:
sudo rm -rf /usr/lib64/php/modules/* sudo rm -rf /etc/php.d/*.ini.rpmnew
2. 重新配置仓库并重装PHP8.1
- 确保仅启用remi-php81仓库:
sudo yum-config-manager --disable 'remi-php*' sudo yum-config-manager --enable remi-php81 - 重装PHP8.1及所需扩展:
sudo yum -y install php php-{cli,fpm,mysqlnd,zip,devel,gd,mbstring,curl,xml,pear,bcmath,json,opcache,redis,memcache}
3. 检查并清理冲突配置
- 查找并删除指向旧API版本的模块配置:
sudo grep -l "20190902" /etc/php.d/ | xargs sudo rm -f - 验证PHP配置无残留错误:
确保输出中无模块API不匹配的警告。php -v php -m
4. 重启相关服务
- 重启PHP-FPM服务(浏览器访问依赖此服务,而非命令行PHP):
sudo systemctl restart php-fpm sudo systemctl enable php-fpm - 重启Web服务器(根据实际使用的服务选择):
# 若使用Apache sudo systemctl restart httpd # 若使用Nginx sudo systemctl restart nginx
5. 验证修复效果
- 在Web根目录创建
phpinfo.php文件:<?php phpinfo(); ?> - 浏览器访问该文件,确认PHP版本为
8.1.13,且所有扩展(如opcache、bcmath、gd等)均正常加载。 - 访问Drupal站点,确认报错消失。
内容的提问来源于stack exchange,提问作者Rohan
相关产品推荐
相关产品推荐

