温馨提示×

centos lnmp如何更新升级

小樊
44
2025-09-22 09:20:38
栏目: 智能运维

CentOS环境下LNMP(Linux+Nginx+MySQL/MariaDB+PHP)更新升级指南

一、升级前准备:备份关键数据

升级前务必备份所有重要数据和配置文件,避免操作失误导致数据丢失。

  • Nginx配置备份sudo cp -a /etc/nginx /etc/nginx.bak
  • MySQL/MariaDB数据备份
    • MySQL:mysqldump -u root -p --all-databases > full-backup.sql
    • MariaDB:mariadb-dump -u root -p --all-databases > full-backup.sql
  • PHP配置备份sudo cp /etc/php.ini /etc/php.ini.bak
  • 网站数据备份sudo cp -a /var/www /var/www.bak

二、系统包更新

先更新CentOS系统的基础包,确保后续升级依赖项兼容:

sudo yum update -y  # CentOS 7
# 或
sudo dnf update -y  # CentOS 8

三、Nginx升级

1. 通过Yum(推荐,适用于大多数场景)

  • CentOS 7:添加EPEL仓库并升级:
    sudo yum install epel-release -y
    sudo yum update nginx -y
    
  • CentOS 8:直接使用dnf升级:
    sudo dnf update nginx -y
    
  • 重启服务sudo systemctl restart nginx
  • 验证版本nginx -v

2. 源码编译升级(适用于自定义编译安装的场景)

  • 下载新版本cd /usr/src && sudo wget http://nginx.org/download/nginx-<version>.tar.gz(替换<version>为目标版本,如1.25.3)
  • 解压编译
    sudo tar zxvf nginx-<version>.tar.gz
    cd nginx-<version>
    sudo ./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf  # 保持与原配置一致
    sudo make
    sudo make install
    
  • 重启服务sudo systemctl restart nginx

四、MySQL/MariaDB升级

1. 数据库备份

  • MySQLmysqldump -u root -p --all-databases > full-backup.sql
  • MariaDBmariadb-dump -u root -p --all-databases > full-backup.sql

2. 卸载旧版本(可选,避免残留文件)

  • MySQLsudo yum remove mysql mysql-server -y
  • MariaDBsudo yum remove mariadb-server mariadb -y

3. 安装新版本

  • MySQL 8.0(CentOS 7)
    sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm -y
    sudo yum update mysql-community-server -y
    
  • MariaDB 10.11(CentOS 8)
    sudo dnf install https://dev.mariadb.org/get/mariadb80-community-release-el8-1.noarch.rpm -y
    sudo dnf update mariadb-server -y
    
  • 启动服务sudo systemctl start mysqld(MySQL)或sudo systemctl start mariadb(MariaDB)
  • 安全配置sudo mysql_secure_installation(设置root密码、移除匿名用户等)

4. 验证版本

  • MySQLmysql -u root -p -e "SELECT VERSION();"
  • MariaDBmariadb -u root -p -e "SELECT VERSION();"

五、PHP升级

1. 通过Remi仓库(推荐,适用于CentOS 7/8)

  • 添加Remi仓库
    • CentOS 7:sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
    • CentOS 8:sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
  • 启用目标PHP版本(以PHP 8.0为例):
    sudo yum install yum-utils -y
    sudo yum-config-manager --enable remi-php80  # CentOS 7
    # 或
    sudo dnf config-manager --enable remi-php80  # CentOS 8
    
  • 升级PHP及扩展sudo yum update php php-mysqlnd php-fpm -y

2. 源码编译升级(适用于自定义编译安装的场景)

  • 下载新版本cd /usr/src && sudo wget https://www.php.net/distributions/php-<version>.tar.gz(替换<version>为目标版本,如8.1.12)
  • 解压编译
    sudo tar zxvf php-<version>.tar.gz
    cd php-<version>
    sudo ./configure --prefix=/usr/local/php --with-config-file-path=/etc/php.ini --enable-fpm --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd  # 保持与原配置一致
    sudo make
    sudo make install
    
  • 更新配置文件sudo cp php.ini-production /etc/php.ini
  • 重启服务sudo systemctl restart php-fpm

3. 验证版本

php -v

六、升级后验证

  • 检查Nginx状态sudo systemctl status nginx(确保运行正常)
  • 检查MySQL/MariaDB状态sudo systemctl status mysqld(MySQL)或sudo systemctl status mariadb(MariaDB)
  • 检查PHP状态sudo systemctl status php-fpm(若使用PHP-FPM)
  • 测试网站功能:访问站点页面,确认动态内容(如PHP脚本)正常加载

七、清理工作

删除下载的安装包和源码目录,释放磁盘空间:

cd /usr/src
sudo rm -rf nginx-*.tar.gz php-*.tar.gz  # 删除Nginx和PHP源码包

注意事项

  • 升级前确认新版本与现有应用兼容(如PHP扩展、框架版本);
  • 若升级过程中出现依赖性问题,可通过sudo yum deplist <package>检查依赖关系;
  • 定期执行升级操作,及时修复安全漏洞。

0