下面按常见场景给你一个完整、可操作的 Debian LNMP 迁移方案(Linux + Nginx + MySQL/MariaDB + PHP)。
如果你是从一台服务器迁移到另一台,或只是重装系统后恢复,流程基本一样。
在源服务器查看版本信息:
lsb_release -a
nginx -v
php -v
mysql --version
记录:
/var/www)tar czvf /root/www_backup.tar.gz /var/www
tar czvf /root/nginx_backup.tar.gz /etc/nginx
tar czvf /root/php_backup.tar.gz /etc/php
mysqldump -u root -p --all-databases > /root/mysql_all.sql
或只备份指定库:
mysqldump -u root -p dbname > /root/dbname.sql
getent passwd www-data
scp /root/*.tar.gz /root/*.sql root@新服务器IP:/root/
rsync -avz /root/ root@新服务器IP:/root/
apt update && apt upgrade -y
apt install nginx -y
apt install mariadb-server -y
mysql_secure_installation
apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
tar xzvf /root/www_backup.tar.gz -C /
tar xzvf /root/nginx_backup.tar.gz -C /
检查配置:
nginx -t
tar xzvf /root/php_backup.tar.gz -C /
重启 PHP-FPM:
systemctl restart php8.2-fpm
mysql -u root -p < /root/mysql_all.sql
chown -R www-data:www-data /var/www
chmod -R 755 /var/www
ps aux | grep nginx
ps aux | grep php
确保都是 www-data
systemctl restart nginx
systemctl restart mariadb
systemctl restart php8.2-fpm
浏览器访问服务器 IP 或域名,确认:
fastcgi_pass 路径错误systemctl status php8.2-fpm
index 文件缺失mysql -u user -p
✅ 更新 DNS(如换 IP)
✅ 开启 HTTPS(Let’s Encrypt)
✅ 设置自动备份
✅ 安全加固(防火墙、fail2ban)
你可以直接告诉我:
我可以给你精确到命令级别的迁移方案。