温馨提示×

怎样迁移linux lnmp服务

小樊
43
2026-10-06 16:08:47
栏目: 智能运维

迁移 Linux + LNMP(Linux + Nginx + MySQL/MariaDB + PHP) 服务,通常分为 整体迁移 和 分服务迁移 两种思路。下面给你一套 通用、可操作的迁移方案,适用于:

  • 同系统版本(如 CentOS→CentOS)
  • 跨系统(如 CentOS→Ubuntu)
  • 物理机 → 云服务器
  • 旧服务器 → 新服务器

一、迁移前准备

1. 确认环境信息

在 原服务器 执行:

cat /etc/os-release
nginx -v
php -v
mysql -V

记录:

  • 系统版本
  • Nginx / PHP / MySQL 版本
  • 网站根目录(如 /www、/var/www)
  • 数据库名、用户

2. 新服务器准备

在新服务器上:

  • 安装相同版本的 LNMP(或兼容版本)
  • 关闭防火墙或放行端口(80 / 443 / 3306)

二、网站文件迁移(Nginx + PHP)

1. 打包网站目录

原服务器:

tar czf www.tar.gz /www
# 或
tar czf www.tar.gz /var/www

2. 传输到新服务器

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

3. 解压并修复权限

新服务器:

tar xzf www.tar.gz -C /
chown -R www:www /www

(用户视 LNMP 安装方式而定,如 nginx、www)


三、Nginx 配置迁移

1. 备份 Nginx 配置

tar czf nginx_conf.tar.gz /etc/nginx

2. 迁移配置

scp nginx_conf.tar.gz root@新IP:/root/
tar xzf nginx_conf.tar.gz -C /

3. 检查配置

nginx -t
systemctl restart nginx

⚠️ 注意:

  • 域名解析是否指向新 IP
  • SSL 证书是否一起迁移

四、MySQL / MariaDB 数据迁移(重点)

方法一:mysqldump(推荐,安全)

1. 原服务器导出

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

或单个库:

mysqldump -uroot -p dbname > dbname.sql

2. 传输

scp all.sql root@新IP:/root/

3. 新服务器导入

mysql -uroot -p < all.sql

✅ 优点:跨版本兼容好
❌ 缺点:大库慢


方法二:直接拷贝数据目录(仅同版本)

systemctl stop mysql
tar czf mysql_data.tar.gz /var/lib/mysql

迁移后:

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

⚠️ 必须同 MySQL 版本


五、PHP 配置与扩展迁移

1. 备份 PHP 配置

tar czf php_conf.tar.gz /etc/php

2. 恢复

tar xzf php_conf.tar.gz -C /

3. 安装相同扩展

php -m

确保扩展一致(如 redis、gd、mbstring)


六、测试与切换

1. 本地测试

修改本地 hosts:

新服务器IP  domain.com

访问网站,确认:

  • 页面正常
  • 数据库读写正常
  • 后台功能正常

2. 切换 DNS

  • 修改域名 A 记录
  • TTL 提前调小(如 300s)

七、常见坑位提醒

❌ 忘记迁移:

  • 定时任务 crontab -l
  • 上传目录权限
  • SSL 证书
  • 伪静态规则

✅ 建议:

  • 先测试再切流量
  • 保留旧服务器 3–7 天

八、如果你用的是一键 LNMP

如:

  • lnmp.org -宝塔面板
  • OneinStack

可以告诉我,我给你对应专属迁移方案。


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

  1. 原系统 + 新系统
  2. 是否用面板
  3. 数据量大小

我可以给你 一步步精确命令。

0 踩