在进行任何升级操作前,务必备份所有重要数据和配置文件,避免升级失败导致数据丢失。
sudo cp -a /etc/nginx /etc/nginx.baksudo cp /etc/my.cnf /etc/my.cnf.bak;sudo mysqldump -u root -p --all-databases > full-backup.sql(MySQL)或sudo mariadb-dump -u root -p --all-databases > full-backup.sql(MariaDB)sudo cp /etc/php.ini /etc/php.ini.baksudo cp -a /var/www /var/www.bak升级前先同步系统软件包索引,并更新所有已安装的基础包到最新稳定版,确保系统环境兼容后续组件升级。
sudo yum update -y
Nginx的升级方式取决于初始安装方法(源码编译/包管理器),推荐使用官方YUM仓库(更便捷且易维护):
sudo yum install epel-release -y
sudo yum install https://nginx.org/packages/mainline/centos/7/$basearch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm -y # CentOS 7示例,CentOS 8需调整路径
sudo yum update nginx -y
sudo systemctl restart nginx
nginx -v # 查看Nginx版本确认升级成功
MySQL与MariaDB的升级逻辑类似,需注意版本兼容性(如MySQL 5.7→8.0需调整配置):
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
sudo yum update mysql-community-server -y # MySQL
# 或(MariaDB)
sudo yum update mariadb-server mariadb -y
sudo systemctl restart mysqld # MySQL
# 或
sudo systemctl restart mariadb # MariaDB
mysql -V # MySQL
mariadb -V # MariaDB
sudo mysql_secure_installation # 设置root密码、移除匿名用户等
PHP升级需通过Remi仓库(提供最新稳定版)或系统YUM仓库(版本较旧),推荐使用Remi仓库:
sudo yum install epel-release -y
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y # CentOS 7示例
sudo yum-config-manager --enable remi-php74
sudo yum update php* -y # 升级PHP及扩展(php-fpm、php-mysqlnd等)
sudo systemctl restart php-fpm # 若使用PHP-FPM
sudo systemctl restart nginx # 重启Nginx以加载新PHP模块
php -v # 查看PHP版本确认升级成功
sudo systemctl status nginx
sudo systemctl status mysqld # 或mariadb
sudo systemctl status php-fpm
/var/log/nginx/error.log)是否有异常。升级完成后,删除下载的安装包及临时目录,释放磁盘空间。
cd /usr/src/
sudo rm -rf nginx-* # 删除Nginx源码包(若源码编译升级)
sudo rm -rf php-* # 删除PHP源码包(若源码编译升级)
注意事项:
./upgrade1.x-x.x.sh),简化操作,但需提前备份数据。sudo yum deplist <package>命令排查依赖关系,或手动安装缺失的依赖包。