Linux环境下LNMP(Linux+Nginx+MySQL+PHP)更新升级指南
LNMP作为常见的动态网站技术栈,其升级需遵循“数据优先、分步验证”的原则,确保服务稳定性和数据安全性。以下是针对各组件的详细升级步骤及注意事项:
备份关键数据:
升级前务必备份所有重要数据,包括:
/var/www/html/或自定义目录);mysqldump导出所有数据库:mysqldump -u root -p --all-databases > full_backup.sql);/etc/nginx/)、PHP配置文件(/etc/php/)、MySQL配置文件(/etc/mysql/)。检查兼容性:
若组件通过系统包管理器(如Ubuntu的apt、CentOS的yum)安装,可使用以下命令快速升级:
sudo apt update && sudo apt upgrade -y # 更新系统包列表及已安装组件
sudo apt install nginx mysql-server php # 升级指定组件至最新版本
sudo yum update -y # 更新系统包列表
sudo yum install nginx mysql-server php # 升级指定组件
升级完成后,重启服务使新版本生效:
sudo systemctl restart nginx mysql php-fpm # 根据PHP版本调整(如php7.4-fpm)
若组件通过源码编译安装(如Nginx、MySQL),需重新下载源码并编译:
Nginx升级:
cp -r /etc/nginx /etc/nginx_backup、cp -r /var/log/nginx /var/log/nginx_backup;nginx-1.26.2):wget http://nginx.org/download/nginx-1.26.2.tar.gz;tar -zxvf nginx-1.26.2.tar.gz → cd nginx-1.26.2 → ./configure --prefix=/usr/local/nginx --with-http_ssl_module(保留旧配置)→ make → sudo make install;USR2信号给旧版本master进程(kill -USR2 $(cat /usr/local/nginx/logs/nginx.pid)),等待新版本启动后,发送QUIT信号停止旧版本(kill -QUIT $(cat /usr/local/nginx/logs/nginx.pid.oldbin))。MySQL升级:
mysqldump -u root -p --all-databases > full_backup.sql;sudo yum remove mysql-server mysql-common(CentOS)或sudo apt remove --purge mysql-server mysql-common(Ubuntu);sudo yum install mysql-server(CentOS)或sudo apt install mysql-server(Ubuntu);sudo mysql_upgrade -u root -p(更新系统表结构),重启服务:sudo systemctl restart mysql。PHP升级:
cp -r /etc/php/ /etc/php_backup/;sudo apt install php7.4(替换为所需版本);php.ini配置文件。若使用LNMP一键安装包(如官网提供的脚本),可通过以下步骤升级:
/usr/local/lnmp1.8/);./upgrade1.x-1.8.sh,1.x为当前版本);nginx -v # 查看Nginx版本
mysql -V # 查看MySQL版本(注意是大写V)
php -v # 查看PHP版本
SELECT 1;),验证数据访问正常;/var/log/nginx/error.log)和PHP日志(/var/log/php-fpm.log),确认无报错。