升级 Debian 上的 LAMP(Linux + Apache + MySQL/MariaDB + PHP) 版本,通常分为 系统升级 和 各组件升级 两部分。下面按 最稳妥、可回滚 的方式说明。
cat /etc/debian_version
apache2 -v
php -v
mysql --version # 或 mariadb --version
确认:
sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
编辑:
sudo nano /etc/apt/sources.list
示例(Debian 12 Bookworm):
deb http://deb.debian.org/debian bookworm main
deb http://deb.debian.org/debian bookworm-updates main
deb http://security.debian.org/debian-security bookworm-security main
sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
完成后重启:
sudo reboot
Debian 升级后 Apache 会自动升级:
apache2 -v
常见版本:
如需手动重装:
sudo apt install --reinstall apache2
⚠️ PHP 不会自动跨大版本升级
php -v
sudo apt install -y lsb-release apt-transport-https ca-certificates curl
curl -sSLo /tmp/debsuryorg-archive-keyring.deb https://packages.sury.org/debsuryorg-archive-keyring.deb
sudo dpkg -i /tmp/debsuryorg-archive-keyring.deb
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/sury-php.list
sudo apt update
sudo apt install php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml
sudo a2dismod php7.4 # 旧版本
sudo a2enmod php8.2
sudo systemctl restart apache2
php -v
mysql --version
sudo apt install mariadb-server
sudo mysql_upgrade -u root -p
sudo apt install mysql-server
sudo mysql_upgrade -u root -p
⚠️ 升级前务必备份:
mysqldump -u root -p --all-databases > all.sql
sudo systemctl status apache2
sudo systemctl status mariadb
创建测试文件:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
浏览器访问:
http://服务器IP/info.php
| 问题 | 解决 |
|---|---|
| Apache 无法启动 | 检查 a2enmod php |
| PHP 不生效 | Apache 未加载正确 PHP 模块 |
| 数据库无法启动 | /var/lib/mysql 权限问题 |
| 升级后网站报错 | PHP 版本不兼容 |
✅ Debian 10 → 11 → 12
✅ PHP 7.x → 8.1 / 8.2
✅ MariaDB 10.3 → 10.5 / 10.11
如果你愿意,可以告诉我:
我可以给你 精确到命令的升级方案 ✅