温馨提示×

如何在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 备份,再启动服务验证。

0