sudo apt install php
;CentOS/RHEL使用sudo yum install php
,更新后需重启Web服务(如Apache/Nginx)并验证版本。在Linux系统中更新PHP是维护网站安全性和性能的关键步骤,新版本通常包含安全补丁、性能优化及新功能支持,以下将根据不同发行版提供详细操作指南,请务必在操作前备份数据(如网站文件、数据库及PHP配置文件),避免服务中断。
更新前的准备工作
- 备份数据
- 网站文件:
tar -czvf site_backup.tar.gz /var/www/html
- 数据库:
mysqldump -u root -p --all-databases > alldb.sql
- PHP配置:
cp /etc/php/{版本}/php.ini ~/php.ini_backup
- 网站文件:
- 检查当前PHP版本
php -v
不同Linux发行版的更新方法
Ubuntu/Debian 系统
- 添加第三方仓库(获取最新版本)
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php -y # Ondřej Surý的官方维护仓库 sudo apt update
- 安装新版本(如从PHP 7.4升级到8.1)
sudo apt install php8.1 php8.1-fpm php8.1-mysql php8.1-curl # 按需扩展
- 切换默认PHP版本
sudo update-alternatives --config php # 选择新版本编号
- 重启Web服务
sudo systemctl restart apache2 # Apache用户 sudo systemctl restart php8.1-fpm && sudo systemctl restart nginx # Nginx用户
CentOS/RHEL 系统
- 启用EPEL和Remi仓库(官方推荐)
sudo dnf install epel-release sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm # RHEL9/CentOS9 sudo dnf module reset php sudo dnf module enable php:remi-8.1 -y # 启用PHP 8.1
- 安装新版本
sudo dnf install php php-fpm php-mysqlnd
- 重启服务
sudo systemctl restart httpd # Apache sudo systemctl restart php-fpm # PHP-FPM
Fedora 系统
sudo dnf upgrade php --refresh # 直接升级官方仓库最新版 sudo dnf install php8.2 # 或指定版本
更新后必做检查
- 验证版本与配置
php -v # 检查版本 php -m # 查看加载的扩展 sudo systemctl status php-fpm # 服务状态
- 测试网站兼容性
- 访问
info.php
文件:<?php phpinfo(); ?>
- 检查日志:
tail -f /var/log/php-fpm/error.log
- 访问
- 回滚方法
- 卸载新版本:
sudo apt remove php8.1
(Ubuntu) - 恢复备份配置:
sudo cp ~/php.ini_backup /etc/php/7.4/php.ini
- 卸载新版本:
常见问题解决
- 扩展缺失:重新安装对应扩展(如
sudo apt install php8.1-gd
)。 - 服务启动失败:检查配置文件语法:
php-fpm -t
。 - Nginx报错502:确保
fastcgi_pass
指向正确的PHP-FPM socket路径(如unix:/run/php/php8.1-fpm.sock
)。
注意事项
- 生产环境建议:先在测试环境验证,避免新版本与旧代码不兼容(如PHP 8.x移除部分过时函数)。
- 长期支持(LTS):推荐使用稳定版本(如PHP 8.1、8.2),避免非稳定版(Odd版本如8.3)。
- 自动更新风险:禁用
unattended-upgrades
自动更新PHP,防止意外中断。
引用说明:
- PHP官方升级指南:www.php.net/migration80
- Ondřej Surý仓库(Ubuntu/Debian):launchpad.net/~ondrej
- Remi仓库(CentOS/RHEL):rpms.remirepo.net
操作涉及第三方仓库,请确保来源可信。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/40864.html