温馨提示×

如何迁移Debian LNMP

小樊
38
2026-08-26 02:56:19
栏目: 智能运维

下面按常见场景给你一个完整、可操作的 Debian LNMP 迁移方案(Linux + Nginx + MySQL/MariaDB + PHP)。
如果你是从一台服务器迁移到另一台,或只是重装系统后恢复,流程基本一样。


一、迁移前准备

1️⃣ 确认环境

源服务器查看版本信息:

lsb_release -a
nginx -v
php -v
mysql --version

记录:

  • Debian 版本(如 11 / 12)
  • Nginx / PHP / MySQL 版本
  • 网站目录(通常是 /var/www
  • 数据库版本(MySQL 或 MariaDB)

二、数据备份(最关键)

1️⃣ 备份网站文件

tar czvf /root/www_backup.tar.gz /var/www

2️⃣ 备份 Nginx 配置

tar czvf /root/nginx_backup.tar.gz /etc/nginx

3️⃣ 备份 PHP 配置

tar czvf /root/php_backup.tar.gz /etc/php

4️⃣ 备份数据库(推荐方式)

mysqldump -u root -p --all-databases > /root/mysql_all.sql

或只备份指定库:

mysqldump -u root -p dbname > /root/dbname.sql

5️⃣ 备份系统用户(如用到)

getent passwd www-data

三、传输备份到新服务器

方式一:SCP(推荐)

scp /root/*.tar.gz /root/*.sql root@新服务器IP:/root/

方式二:rsync

rsync -avz /root/ root@新服务器IP:/root/

四、新服务器环境安装

1️⃣ 更新系统

apt update && apt upgrade -y

2️⃣ 安装 Nginx

apt install nginx -y

3️⃣ 安装 MariaDB(推荐)

apt install mariadb-server -y
mysql_secure_installation

4️⃣ 安装 PHP(示例 PHP 8.2)

apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y

五、恢复数据

1️⃣ 恢复网站文件

tar xzvf /root/www_backup.tar.gz -C /

2️⃣ 恢复 Nginx 配置

tar xzvf /root/nginx_backup.tar.gz -C /

检查配置:

nginx -t

3️⃣ 恢复 PHP 配置

tar xzvf /root/php_backup.tar.gz -C /

重启 PHP-FPM:

systemctl restart php8.2-fpm

4️⃣ 恢复数据库

mysql -u root -p < /root/mysql_all.sql

六、权限与目录修正(非常重要)

1️⃣ 设置网站目录权限

chown -R www-data:www-data /var/www
chmod -R 755 /var/www

2️⃣ 检查运行用户

ps aux | grep nginx
ps aux | grep php

确保都是 www-data


七、服务启动与测试

systemctl restart nginx
systemctl restart mariadb
systemctl restart php8.2-fpm

浏览器访问服务器 IP 或域名,确认:

  • 网站能打开
  • PHP 正常解析
  • 数据库正常连接

八、常见问题排查

❌ 502 Bad Gateway

  • PHP-FPM 没启动
  • fastcgi_pass 路径错误
systemctl status php8.2-fpm

❌ 403 Forbidden

  • 目录权限错误
  • index 文件缺失

❌ 数据库连不上

  • 用户权限问题
mysql -u user -p

九、迁移后建议

✅ 更新 DNS(如换 IP)
✅ 开启 HTTPS(Let’s Encrypt)
✅ 设置自动备份
✅ 安全加固(防火墙、fail2ban)


十、如果你需要更具体的方案

你可以直接告诉我:

  1. Debian 版本
  2. MySQL 还是 MariaDB
  3. PHP 版本
  4. 是否用 Docker
  5. 同服务器重装 or 换服务器

我可以给你精确到命令级别的迁移方案

0