Debian系统更新LNMP组件(Linux+Nginx+MySQL/MariaDB+PHP)指南
在更新LNMP组件前,需先确保系统包为最新状态,避免依赖冲突:
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
此命令会同步软件源、升级所有可升级的系统包,并清理无用依赖。
Debian默认仓库中的Nginx版本可能较旧,建议添加Nginx官方仓库以获取最新稳定版:
# 安装必要工具
sudo apt install software-properties-common -y
# 添加Nginx官方GPG密钥
wget -qO - https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
# 添加Nginx官方APT仓库(根据Debian版本选择,如buster/bullseye)
sudo add-apt-repository "deb http://nginx.org/packages/mainline/debian $(lsb_release -cs) main"
# 更新APT缓存并升级Nginx
sudo apt update && sudo apt install nginx -y
nginx -v # 查看Nginx版本,确认升级成功
sudo systemctl restart nginx # 重启服务使变更生效
注意:若使用自定义配置文件,升级前需备份/etc/nginx/目录,避免配置丢失。
Debian默认仓库中的MySQL/MariaDB版本可能滞后,建议添加官方仓库:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb # 选择MySQL版本(如8.0)
sudo apt update
sudo apt install mysql-server -y
sudo apt install software-properties-common -y
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] https://mirrors.aliyun.com/mariadb/repo/10.11/debian $(lsb_release -cs) main'
sudo apt update
sudo apt install mariadb-server -y
升级后运行安全脚本,强化数据库安全性:
sudo mysql_secure_installation # MySQL
# 或
sudo mariadb_secure_installation # MariaDB
mysql --version # MySQL
mariadb --version # MariaDB
sudo systemctl restart mysql # 或mariadb
注意:升级前务必备份数据库(mysqldump -u root -p --all-databases > full_backup.sql),防止数据丢失。
Debian默认仓库的PHP版本较旧,建议添加Ondřej Surý的PPA(提供PHP 7.4+版本):
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
# 安装最新PHP版本(如8.2)及常用扩展
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 php8.2-zip -y
# 若需切换PHP版本(如从7.4升级到8.2),可使用update-alternatives
sudo update-alternatives --set php /usr/bin/php8.2
php -v # 查看PHP版本,确认升级成功
sudo systemctl restart php8.2-fpm # 重启PHP-FPM(若使用Nginx)
sudo systemctl restart nginx # 重启Nginx以应用PHP变更
注意:升级前备份PHP配置文件(/etc/php/8.2/)和项目代码,避免配置冲突。
更新所有组件后,重启服务以应用变更:
sudo systemctl restart nginx mysql php8.2-fpm # 根据实际组件版本调整
phpinfo.php文件(<?php phpinfo(); ?>),通过浏览器访问,确认PHP版本及扩展加载正常;mysql -u root -p),确认数据库连接正常。注意事项:
sudo apt --fix-broken install修复;