温馨提示×

如何升级centos上的lnmp版本

小樊
38
2025-11-01 19:34:09
栏目: 智能运维

一、升级前的准备工作

  1. 备份关键数据与配置文件
    升级前务必备份所有重要数据和配置文件,防止操作失误导致数据丢失。常用备份命令:

    sudo cp -a /etc/nginx /etc/nginx.bak       # 备份Nginx配置
    sudo cp -a /etc/my.cnf /etc/my.cnf.bak    # 备份MySQL/MariaDB配置
    sudo cp -a /etc/php.ini /etc/php.ini.bak  # 备份PHP配置
    sudo mysqldump -u root -p --all-databases > full-backup.sql  # 备份所有数据库(可选但建议)
    sudo cp -a /var/www /var/www.bak          # 备份网站数据目录
    
  2. 更新系统包
    确保系统所有包为最新版本,避免依赖冲突:

    sudo yum update -y
    

二、分组件升级步骤

1. 升级Nginx

  • 通过Yum安装的情况(推荐)
    若Nginx通过yum安装(如使用官方或EPEL仓库),直接更新即可:

    sudo yum install nginx  # 自动升级到最新可用版本
    sudo systemctl restart nginx  # 重启服务生效
    

    验证版本:nginx -V(显示编译参数及版本号)。

  • 源码编译安装的情况
    若通过源码编译安装,需下载最新源码并重新编译:

    cd /usr/src
    sudo wget http://nginx.org/download/nginx-<latest_version>.tar.gz  # 替换为最新版本号
    sudo tar zxvf nginx-<latest_version>.tar.gz
    cd nginx-<latest_version>
    sudo ./configure --prefix=/usr/share/nginx --with-http_ssl_module --with-http_v2_module  # 参考原编译参数
    sudo make
    sudo make install
    sudo systemctl restart nginx
    

2. 升级MySQL/MariaDB

  • MySQL升级
    若使用MySQL,需先添加官方Yum仓库(以MySQL 8.0为例):

    sudo yum remove mysql mysql-server  # 移除旧版本(若有)
    sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm  # CentOS 7示例
    sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
    sudo yum install mysql-community-server
    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    

    升级后需运行安全脚本重置root密码:sudo mysql_secure_installation

  • MariaDB升级
    若使用MariaDB,操作类似:

    sudo yum remove mariadb-server mariadb
    sudo yum install mariadb-server
    sudo systemctl start mariadb
    sudo systemctl enable mariadb
    

    验证版本:mysql -u root -p -e "SELECT VERSION();"(MySQL)或mariadb -u root -p -e "SELECT VERSION();"(MariaDB)。

3. 升级PHP

  • 通过Yum安装的情况(推荐)
    若PHP通过yum安装,需启用对应的Remi仓库(以PHP 7.4为例):

    sudo yum install epel-release
    sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm  # CentOS 7示例
    sudo yum-config-manager --enable remi-php74  # 切换到所需PHP版本
    sudo yum update php php-mysqlnd php-fpm php-opcache  # 更新PHP及常用扩展
    sudo systemctl restart php-fpm  # 重启PHP-FPM(若使用)
    
  • 源码编译安装的情况
    若通过源码编译安装,需下载最新源码并重新编译:

    cd /usr/src
    sudo wget https://www.php.net/distributions/php-<latest_version>.tar.gz  # 替换为最新版本号
    sudo tar zxvf php-<latest_version>.tar.gz
    cd php-<latest_version>
    sudo ./configure --prefix=/usr/local/php --with-config-file-path=/etc --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
    

    验证版本:php -v

三、升级后验证与清理

  1. 验证服务状态
    确保所有服务正常运行:

    sudo systemctl status nginx
    sudo systemctl status mysqld
    sudo systemctl status php-fpm
    
  2. 验证功能正常

    • 访问网站页面,确认无报错;
    • 创建测试PHP文件(如/var/www/html/info.php),内容为<?php phpinfo(); ?>,通过浏览器访问确认PHP版本;
    • 登录MySQL/MariaDB,执行简单查询确认数据库功能。
  3. 清理临时文件
    删除下载的压缩包和源码目录,释放空间:

    cd /
    sudo rm -rf /usr/src/nginx-*.tar.gz
    sudo rm -rf /usr/src/php-*.tar.gz
    

注意事项

  • 若使用LNMP一键安装包,优先运行其提供的升级脚本(如./upgrade1.x-x.x.sh),可自动处理依赖和配置兼容问题;
  • 升级前需确认新版本与现有应用(如WordPress、Discuz)的兼容性,避免因版本不匹配导致功能异常;
  • 若升级过程中遇到依赖冲突,可通过sudo yum deplist <package>查看依赖关系,手动解决或使用--skip-broken选项跳过有问题的包(不推荐长期使用)。

0