当前位置: 首页 > news >正文

PHP 8.0 升级到 PHP 8.1

CentOS Stream 9 上将 PHP 8.0 升级到 PHP 8.1,推荐使用 Remi 仓库(提供多版本 PHP 支持)。以下是详细步骤:


1. 确认当前 PHP 版本

php -v

输出示例

PHP 8.0.x (cli) (built: ...)

如果显示 8.0.x,说明当前运行的是 PHP 8.0。


2. 安装 Remi 仓库(如果尚未安装)

Remi 仓库提供 PHP 8.1、8.2、8.3 等多个版本,适用于 CentOS/RHEL 9。

(1)下载 Remi 仓库 RPM 包

dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm

或(如果 dnf 不可用,用 yum):

yum install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm

(2)验证 Remi 仓库是否安装成功

dnf repolist | grep remi

输出示例

remi-safe               Safe Remi's RPM repository for Enterprise Linux 9 - x86_64
remi-php81              Remi's PHP 8.1 RPM repository for Enterprise Linux 9 - x86_64

3. 切换 PHP 版本(从 8.0 → 8.1)

(1)重置当前 PHP 模块(如果使用 dnf module 管理)

dnf module reset php

输出示例

Resetting module 'php' to default state.

(2)启用 Remi 的 PHP 8.1 模块

dnf module enable php:remi-8.1 -y

输出示例

Enabling module streams:php remi-8.1

(3)安装 PHP 8.1 及相关扩展

dnf install -y php php-cli php-fpm php-mysqlnd php-json php-opcache php-gd php-mbstring php-curl php-xml php-pear php-bcmath php-zip

可选扩展(根据需求安装):

dnf install -y php-redis php-mongodb php-swoole php-imagick

4. 检查 PHP 8.1 是否安装成功

php -v

输出示例

PHP 8.1.x (cli) (built: ...)

如果显示 8.1.x,说明升级成功!


5. 更新 PHP-FPM(如果使用 FPM)

(1)检查 PHP-FPM 服务

systemctl status php-fpm

如果服务名是 php-fpm(默认),则:

systemctl restart php-fpm

如果服务名是 php80-php-fpm(旧版本),则:

systemctl stop php80-php-fpm
systemctl disable php80-php-fpm
systemctl enable --now php-fpm  # 启用新版本

(2)检查 PHP-FPM 版本

ps aux | grep php-fpm

输出示例

root      1234  0.0  0.1 234567 8901 ?        Ss   10:00   0:00 php-fpm: master process (/etc/php-fpm.conf)

确认进程使用的是 php-fpm(8.1 版本)。


6. 更新 Web 服务器配置(Nginx/Apache)

(1)Nginx 配置

确保 fastcgi_pass 指向正确的 PHP-FPM 套接字或端口:

location ~ \.php$ {fastcgi_pass unix:/run/php-fpm/www.sock;  # 或 127.0.0.1:9000fastcgi_index index.php;include fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

测试 Nginx 配置并重启

nginx -t && systemctl restart nginx

(2)Apache 配置

确保 mod_phpFPM 配置正确:

<FilesMatch \.php$>SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>

重启 Apache

systemctl restart httpd

7. 清理旧版本 PHP 8.0(可选)

如果确认不再需要 PHP 8.0,可以卸载:

dnf remove php80 php80-php-cli php80-php-fpm php80-php-mysqlnd

注意

  • 如果使用 dnf module 管理,也可以直接禁用 PHP 8.0 模块:
    dnf module disable php:8.0 -y
    

8. 常见问题解决

Q1: dnf module enable php:remi-8.1 报错?

  • 可能是 Remi 仓库未正确安装,重新运行:
    dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
    

Q2: PHP 8.1 安装后,某些扩展缺失?

  • 使用 dnf search php81- 查找可用扩展:
    dnf search php81-
    
    然后安装:
    dnf install -y php81-php-redis php81-php-mongodb
    

Q3: 升级后网站报错?

  • 检查 PHP 错误日志:
    tail -f /var/log/php-fpm/error.log  # 或 /var/log/httpd/error_log
    
  • 可能是代码兼容性问题(PHP 8.1 移除了部分函数,如 create_function())。

总结

步骤命令
1. 确认当前 PHP 版本php -v
2. 安装 Remi 仓库dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
3. 启用 PHP 8.1 模块dnf module enable php:remi-8.1 -y
4. 安装 PHP 8.1dnf install php php-cli php-fpm php-mysqlnd
5. 重启 PHP-FPMsystemctl restart php-fpm
6. 测试 PHP 版本php -v

这样,你的服务器就成功从 PHP 8.0 升级到 PHP 8.1 了! 🚀

遇到redis版本冲突解决办法:
https://blog.csdn.net/zhezhebie/article/details/149451177

http://www.dtcms.com/a/286048.html

相关文章:

  • 创建型模式
  • 基于 HT 的 3D 可视化智慧矿山开发实现
  • 从一开始的网络攻防(四):XSS
  • hadoop(服务器伪分布式搭建)
  • FastAdmin后台登录地址变更原理与手动修改方法-后台入口机制原理解析-优雅草卓伊凡
  • Hadoop安全机制深度剖析:Kerberos认证与HDFS ACL细粒度权限控制
  • 《Web安全之深度学习实战》读书笔记总结
  • AI赋能轮胎安全:基于YOLO11的智能裂纹检测系统
  • 基于springboot+vue+mysql的智慧社区设计与实现(源码+论文+开题报告)
  • Docker Swarm 集群使用记录
  • Matlab打开慢、加载慢的解决办法
  • 免费的一些工具收集
  • 【Oracle】centos7离线静默安装oracle11g(p13390677_112040)
  • Hive 向量化执行引擎 Vectorized Execution 常见 NPE 报错分析及解决
  • 全球天气预报5天(经纬度版)免费API接口教程
  • Python绘制数据(二)
  • JAVA面试宝典 -《微服务治理:从链路追踪到熔断》
  • 某邮生活旋转验证码识别
  • 算法竞赛备赛——【图论】求最短路径——小结
  • 前端之CSS
  • MyBatis之关联查询
  • WEB安全架构
  • Tomcat及Nginx部署使用
  • DevExpress WinForms v25.1 亮点:AI驱动的语义搜索、模板库更新
  • RPC 与 Feign 的区别笔记
  • SQLite 数据库字段类型-详细说明,数据类型详细说明。
  • 服务器mysql数据的简单备份脚本
  • 深入浅出MyBatis缓存:如何让数据库交互飞起来
  • Agent-S:重新定义下一代 AI 智能体开发框架
  • 论文review SfM MVS VGGT: Visual Geometry Grounded Transformer