CentOS PHP定期更新维护指南
定期更新的前提是拥有可靠的软件源。CentOS默认的yum仓库提供的PHP版本较旧,需添加以下仓库以获取最新版本:
sudo yum install epel-release
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm # CentOS 7
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm # CentOS 8/Stream
定期运行以下命令,更新系统所有软件包及PHP相关组件(如php-cli、php-fpm、扩展模块):
# 更新系统包索引
sudo yum update
# 更新所有已安装的PHP包(包括核心、扩展、模块)
sudo yum update php\*
注意:更新前建议备份重要数据(如网站文件、数据库),避免更新导致兼容性问题。
通过yum history命令可查看、回滚更新记录,确保更新安全:
# 查看最近更新记录
sudo yum history list php
# 回滚指定更新(如ID为12的更新)
sudo yum history undo 12
为实现无人值守维护,可通过Cron设置定时任务,自动检查并安装PHP安全更新:
/usr/local/bin/php-update.sh,内容如下:#!/bin/bash
# 记录更新日志
LOG_FILE="/var/log/php-update.log"
echo "===== PHP Update Check $(date) =====" >> $LOG_FILE
# 检查并安装PHP安全更新(--security选项仅安装安全补丁)
sudo yum update --security php\* >> $LOG_FILE 2>&1
# 重启PHP服务(若更新了PHP-FPM或相关模块)
if sudo yum history list php | grep -q "Update"; then
sudo systemctl restart php-fpm >> $LOG_FILE 2>&1
sudo systemctl restart httpd >> $LOG_FILE 2>&1 # Apache用户
# sudo systemctl restart nginx >> $LOG_FILE # Nginx用户
fi
赋予脚本执行权限:sudo chmod +x /usr/local/bin/php-update.sh
crontab -e),添加以下行(每天凌晨2点执行):0 2 * * * /usr/local/bin/php-update.sh
若需同时运行多个PHP版本(如PHP 7.4与8.0),可使用Remi仓库的版本切换功能:
sudo yum-config-manager --enable remi-php80
sudo yum install php80 php80-php-cli php80-php-fpm php80-mysqlnd
alternatives工具切换系统默认PHP:sudo alternatives --config php
按提示选择对应版本编号即可。更新完成后,通过以下命令确认PHP版本及模块状态:
# 查看PHP版本
php -v
# 查看PHP模块列表
php -m
# 检查PHP-FPM状态(若使用)
sudo systemctl status php-fpm
/etc/php.ini、/etc/php-fpm.conf)。--security选项),及时修复高危漏洞。