Debian LAMP升级流程
一 升级前准备
- 备份关键数据与配置:包括网站根目录(如 /var/www)、数据库(MySQL/MariaDB 全量导出)、以及关键配置文件(如 /etc/apache2/、/etc/mysql/、/etc/php/ 或 /etc/php/*/apache2/php.ini)。
- 检查运行状态与空间:确认磁盘空间充足、网络稳定,各服务(Apache、MySQL/MariaDB、PHP-FPM)当前运行正常。
- 维护窗口与回滚预案:选择低峰时段执行,保留当前版本包与配置的快照或备份,便于快速回滚。
- 将系统置于维护模式(可选):对应用做临时维护页或关闭对外访问,避免升级期间写入不一致。
以上准备可显著降低升级风险并确保可回退。
二 同版本内的组件更新
- 刷新索引与执行安全/常规升级:
- 更新索引:sudo apt update
- 常规升级:sudo apt upgrade -y
- 处理依赖变化:sudo apt full-upgrade -y
- 清理无用包:sudo apt autoremove -y
- 重启系统(如有内核/关键库更新):sudo reboot
- 单独升级 LAMP 组件(可选,更可控):
- Apache:sudo apt install --only-upgrade apache2 -y
- MariaDB:sudo apt install --only-upgrade mariadb-server -y
- MySQL:sudo apt install --only-upgrade mysql-server -y
- PHP(按已安装版本):
- 升级全部 PHP 包:sudo apt install --only-upgrade php* -y
- 指定版本(如 PHP 8.2):sudo apt install --only-upgrade php8.2* -y
- 重启相关服务并验证:
- 重启:sudo systemctl restart apache2(如用 PHP-FPM:sudo systemctl restart php8.2-fpm;数据库:sudo systemctl restart mariadb/mysql)
- 状态:sudo systemctl status apache2 mariadb mysql php8.2-fpm
- 版本:apache2 -v、mysql --version、php -v
上述步骤覆盖同版本内的安全与功能更新,适合定期维护。
三 跨版本大版本升级(如 Debian 11 Bullseye → 12 Bookworm)
- 准备与检查:完成完整备份,确认第三方源兼容目标版本,预留充足时间与回滚方案。
- 调整 APT 源列表:备份 /etc/apt/sources.list,将源中的旧代号(如 bullseye)替换为新代号(如 bookworm),保存后更新索引:sudo apt update。
- 执行发行版升级:
- 预检查与升级:sudo apt full-upgrade -y
- 清理:sudo apt autoremove -y
- 重启:sudo reboot
- 升级后验证系统版本:lsb_release -a、cat /etc/debian_version
- 复查 LAMP 组件:按第二部分步骤逐一升级并重启 Apache、MySQL/MariaDB、PHP-FPM,确认站点与数据库正常。
四 常见问题与验证
- 依赖冲突与中断:执行 sudo apt -f install 修复破损依赖;必要时用 sudo apt-mark unhold 解除被保留的包后再升级。
- 服务无法启动:查看日志(如 journalctl -u apache2、journalctl -u mariadb、journalctl -u php8.2-fpm),按报错修复配置或模块兼容性问题。
- PHP 与连接方式:若使用 PHP-FPM,确保 Apache 的 mpm_event/worker 与 proxy_fcgi 配置正确;升级后对比 php -v 与 phpinfo() 输出。
- 安全与自动化:建议启用无人值守安全更新(unattended-upgrades),编辑 /etc/apt/apt.conf.d/20auto-upgrades 启用自动更新:
- APT::Periodic::Update-Package-Lists “1”;
- APT::Periodic::Unattended-Upgrade “1”;
- 验证要点:访问站点首页与关键业务接口,登录数据库抽查数据一致性,确认 SSL/TLS 与 重写规则 正常。