如何在Debian上更新LNMP版本
小樊
31
2025-11-29 01:35:42
在Debian上更新LNMP的可执行方案
一 准备与总体流程
- 备份关键数据与配置:数据库全量备份(如 mysqldump)、网站目录与Nginx配置(/etc/nginx/sites-available 等),并准备回滚方案。
- 更新系统索引与已装包:执行apt update && apt full-upgrade -y,随后apt autoremove -y && apt clean,减少冲突与残留。
- 逐组件升级并重启:按顺序升级Nginx → MySQL/MariaDB → PHP,每一步完成后重启对应服务并做连通性验证。
- 验证与回滚预案:核对版本与站点可用性;如出现异常,优先回滚对应组件或切换至备份配置/站点。
二 升级Nginx
- 使用官方APT源(推荐,便于后续升级与维护):
- 导入签名并添加源(Debian 11/12示例):
- sudo apt install -y wget gnupg2 ca-certificates lsb-release
- wget -qO - https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
- echo “deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] https://nginx.org/packages/mainline/debian $(lsb_release -sc) nginx” | sudo tee /etc/apt/sources.list.d/nginx.list >/dev/null
- 升级与重启:
- sudo apt update && sudo apt install --only-upgrade nginx -y
- sudo systemctl restart nginx && sudo systemctl status nginx
- 验证:nginx -v 与访问站点/状态页确认。
三 升级MySQL或MariaDB
- 备份与检查:
- mysqldump -u root -p --all-databases > /backup/full_$(date +%F).sql
- 记录当前版本:mysql --version 或 mariadb --version
- 升级路径A(MariaDB,保持与发行版仓库一致):
- sudo apt update && sudo apt install --only-upgrade mariadb-server mariadb-client -y
- sudo systemctl restart mariadb && sudo systemctl status mariadb
- 可选:sudo mariadb-secure-installation
- 升级路径B(MySQL,使用官方仓库获取新版本):
- 下载并安装配置包(选择对应Debian版本,如 11/12):
- wget https://dev.mysql.com/get/mysql-apt-config_0.8.29-1_all.deb
- sudo dpkg -i mysql-apt-config_*.deb(在弹窗中选择所需版本)
- 升级与重启:
- sudo apt update && sudo apt install --only-upgrade mysql-server -y
- sudo systemctl restart mysql && sudo systemctl status mysql
- 可选:sudo mysql_secure_installation
- 验证:登录数据库执行 SELECT VERSION(); 并检查错误日志。
四 升级PHP
- 添加 Ondřej Surý 的 PHP 仓库(Debian 11/12常用):
- sudo apt install -y apt-transport-https lsb-release ca-certificates curl gnupg2
- curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
- echo “deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main” | sudo tee /etc/apt/sources.list.d/php.list >/dev/null
- 安装/升级到目标版本(示例为PHP 8.3;按需替换为 8.2/8.1):
- sudo apt update
- sudo apt install -y php8.3 php8.3-cli php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-zip
- 切换与清理:
- 若使用PHP-FPM,在Nginx的 fastcgi_pass 中指向新版本套接字(如 /run/php/php8.3-fpm.sock),然后:
- sudo systemctl restart php8.3-fpm nginx
- 验证:php -v 与 php-fpm -v;检查站点与 phpinfo()。
- 确认无误后,可移除旧版扩展/包(如 sudo apt purge php8.2*)。
五 验证与回滚
- 版本与服务状态核对:
- nginx -v;mysql --version 或 mariadb --version;php -v;systemctl is-active nginx mariadb php*-fpm
- 访问站点与关键接口,查看 Nginx 错误日志(/var/log/nginx/error.log)与 PHP-FPM 日志(/var/log/php*-fpm.log)
- 快速回滚思路:
- APT 升级失败:使用apt install <组件名>=<旧版本> 指定旧版本回退,或从备份恢复配置文件与站点。
- 数据库异常:停止服务,恢复最近的 SQL 备份,再启动服务验证。