温馨提示×

debian lnmp怎么迁移

小樊
41
2026-07-30 08:12:27
栏目: 智能运维

Debian 上迁移 LNMP(Linux + Nginx + MySQL/MariaDB + PHP),常见场景有:

  • 从一台服务器迁移到另一台服务器
  • 从本机迁移到云服务器
  • 本地环境迁移到线上

下面给你一套 通用、实战型迁移方案,适用于 Debian 10/11/12


一、迁移前准备

1️⃣ 确认环境

源服务器 查看版本:

cat /etc/debian_version
nginx -v
php -v
mysql --version

2️⃣ 新服务器初始化

新 Debian 服务器建议:

  • 同版本 Debian(避免兼容问题)
  • 安装相同版本的 Nginx / PHP / MySQL

二、LNMP 迁移核心步骤

✅ 1. 迁移 Nginx 配置

源服务器打包

tar czvf nginx-conf.tar.gz /etc/nginx/

拷贝到新服务器

scp nginx-conf.tar.gz root@新服务器IP:/tmp/

新服务器解压

tar xzvf /tmp/nginx-conf.tar.gz -C /

⚠️ 注意:

  • 不要覆盖 /etc/nginx/nginx.conf与系统相关的内容
  • 推荐只迁移:
/etc/nginx/sites-available/
/etc/nginx/sites-enabled/
/etc/nginx/conf.d/

✅ 2. 迁移网站文件

默认路径一般是:

/var/www/

打包

tar czvf www.tar.gz /var/www/

传输

scp www.tar.gz root@新服务器IP:/tmp/

解压

tar xzvf /tmp/www.tar.gz -C /

✅ 3. 迁移 MySQL / MariaDB 数据库(重点)

方法一(推荐):mysqldump

源服务器导出
mysqldump -u root -p --all-databases > all.sql

或单库:

mysqldump -u root -p dbname > dbname.sql
传输
scp all.sql root@新服务器IP:/tmp/
新服务器导入
mysql -u root -p < /tmp/all.sql

✅ 优点:安全、兼容性好
✅ 适合 跨版本迁移


方法二(不推荐但快):直接拷贝数据目录

⚠️ 仅限同版本 MySQL / MariaDB

systemctl stop mariadb
tar czvf mysql-data.tar.gz /var/lib/mysql

新服务器:

systemctl stop mariadb
tar xzvf mysql-data.tar.gz -C /
chown -R mysql:mysql /var/lib/mysql
systemctl start mariadb

✅ 4. 迁移 PHP 配置

tar czvf php-conf.tar.gz /etc/php/

新服务器:

tar xzvf php-conf.tar.gz -C /

常见路径:

/etc/php/8.x/fpm/
/etc/php/8.x/cli/

重启 PHP-FPM:

systemctl restart php8.x-fpm

三、新服务器安装 LNMP(如未安装)

apt update
apt install nginx mariadb-server php-fpm php-mysql

启动服务:

systemctl enable nginx mariadb php8.x-fpm
systemctl start nginx mariadb php8.x-fpm

四、检查与排错

1️⃣ Nginx 配置检查

nginx -t

2️⃣ 查看错误日志

tail -f /var/log/nginx/error.log
tail -f /var/log/php8.x-fpm.log

3️⃣ 常见问题

问题 原因
502 Bad Gateway PHP-FPM 没启动 / sock 路径不一致
403 Forbidden 网站目录权限
数据库连不上 用户权限 / bind-address

五、权限修复(非常重要)

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

六、迁移后验证清单 ✅

  • [ ] Nginx 正常启动
  • [ ] PHP 页面可访问
  • [ ] 数据库可连接
  • [ ] 网站功能正常
  • [ ] HTTPS(SSL)证书已迁移

七、SSL 证书迁移(如用 HTTPS)

/etc/letsencrypt/

或:

/etc/nginx/ssl/

⚠️ Let’s Encrypt 建议 重新申请

certbot renew

八、总结(最简流程)

1️⃣ 导出数据库
2️⃣ 打包网站 + 配置
3️⃣ 新服务器安装 LNMP
4️⃣ 导入配置和网站
5️⃣ 导入数据库
6️⃣ 修复权限
7️⃣ 重启服务

如果你愿意,可以告诉我:

  • Debian 版本
  • MySQL 还是 MariaDB
  • 是否用 Docker
  • 是否用宝塔 / LNMP 一键包

我可以给你 更精确的迁移命令

0