温馨提示×

LNMP如何迁移到新服务器

小樊
56
2026-08-06 02:19:01
栏目: 云计算

迁移 LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 到新服务器,通常包括 系统环境、网站文件、数据库、配置 四部分。下面给你一套 通用、稳妥、可回滚 的迁移流程,适用于 CentOS / Rocky / Alma / Ubuntu / Debian


一、迁移前准备

1️⃣ 新服务器环境

  • 新服务器 系统版本尽量保持一致
  • 安装相同版本的:
    • Nginx
    • MySQL / MariaDB
    • PHP(版本、模块一致)

✅ 推荐:
新服务器先 空环境安装 LNMP,不要直接覆盖


2️⃣ 查看旧服务器版本

nginx -v
php -v
mysql -V
lsb_release -a

二、迁移网站文件(Nginx)

1️⃣ 停止旧服务器服务(避免写入)

systemctl stop nginx
systemctl stop php-fpm

2️⃣ 打包网站目录

例如网站目录:

tar czvf /tmp/www.tar.gz /usr/share/nginx/html
# 或
tar czvf /tmp/www.tar.gz /var/www

3️⃣ 传输到新服务器

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

4️⃣ 新服务器解压

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

三、迁移 Nginx 配置

1️⃣ 备份旧配置

tar czvf /tmp/nginx_conf.tar.gz /etc/nginx

2️⃣ 传输并解压

scp /tmp/nginx_conf.tar.gz root@新服务器IP:/tmp/
tar xzvf /tmp/nginx_conf.tar.gz -C /

3️⃣ 检查配置

nginx -t

✅ 常见问题:

  • 路径不存在
  • 证书路径错误
  • fastcgi 路径不一致

四、迁移 PHP 配置(可选)

1️⃣ 迁移 php-fpm 配置

tar czvf /tmp/php_conf.tar.gz /etc/php-fpm.d /etc/php.ini

2️⃣ 新服务器恢复

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

五、迁移数据库(重点)

✅ 方法一:推荐(mysqldump)

1️⃣ 旧服务器备份数据库

mysqldump -uroot -p --all-databases > /tmp/all.sql

或单库:

mysqldump -uroot -p dbname > /tmp/dbname.sql

2️⃣ 传输 SQL 文件

scp /tmp/all.sql root@新服务器IP:/tmp/

3️⃣ 新服务器恢复

mysql -uroot -p < /tmp/all.sql

✅ 方法二:冷备(适合大库)

1️⃣ 停止 MySQL

systemctl stop mysqld

2️⃣ 备份数据目录

tar czvf /tmp/mysql_data.tar.gz /var/lib/mysql

3️⃣ 覆盖新服务器(先停服务)

systemctl stop mysqld
tar xzvf /tmp/mysql_data.tar.gz -C /
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld

⚠️ 版本必须完全一致


六、迁移 SSL 证书(HTTPS)

1️⃣ 备份证书

tar czvf /tmp/ssl.tar.gz /etc/nginx/ssl

2️⃣ 新服务器恢复

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

七、新服务器启动服务

systemctl start nginx
systemctl start php-fpm
systemctl start mysqld

检查状态:

systemctl status nginx
systemctl status php-fpm
systemctl status mysqld

八、切换访问(DNS/Hosts)

1️⃣ 修改 DNS 解析

  • 修改 A 记录
  • TTL 提前调小

2️⃣ 本地测试

curl http://新服务器IP

九、迁移后检查清单 ✅

✅ 网站能否访问
✅ HTTPS 是否正常
✅ 后台是否可登录
✅ 数据库是否完整
✅ 上传目录权限
✅ 定时任务(crontab)
✅ 日志是否正常


十、常见坑位 ⚠️

问题 解决
403 目录权限
502 php-fpm 未启动
空白页 php 错误
数据库连接失败 用户权限
上传失败 upload_tmp_dir

十一、一键迁移建议(进阶)

  • 使用 rsync
  • 使用 Docker LNMP
  • 使用 Ansible
  • 使用 云厂商镜像迁移

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

  • ✅ 旧 / 新服务器系统版本
  • ✅ LNMP 安装方式(yum / apt / lnmp.org)
  • ✅ 是单站点还是多站点

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

0