温馨提示×

如何迁移linux lnmp

小樊
47
2026-09-03 15:12:10
栏目: 智能运维

“迁移 Linux LNMP”通常指把 L(Nginx) + N(MySQL/MariaDB) + P(PHP) 整套环境及网站数据,从一台服务器迁移到另一台服务器(或本机重装后恢复)。下面按最稳妥、可回滚的思路讲。


一、迁移前的准备

1. 明确迁移范围

  • 系统版本(CentOS / Ubuntu / Debian)
  • LNMP 安装方式
    • 源码编译
    • 包管理器(yum / apt)
    • 一键包(LNMP.org、宝塔等)
  • 是否包含:
    • 网站代码
    • 数据库
    • 配置文件
    • SSL 证书
    • 定时任务(crontab)

二、源服务器导出(旧机器)

1. Nginx 配置与网站

# 网站根目录(示例)
/var/www/html
/home/wwwroot

# Nginx 配置
/etc/nginx/nginx.conf
/etc/nginx/conf.d/
/usr/local/nginx/conf/

打包:

tar czf nginx_conf.tar.gz /etc/nginx
tar czf wwwroot.tar.gz /var/www/html

2. PHP 配置

/etc/php.ini
/etc/php-fpm.conf
/etc/php-fpm.d/

打包:

tar czf php_conf.tar.gz /etc/php*

3. MySQL / MariaDB 数据(重点)

方法一(推荐):mysqldump

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

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

/etc/my.cnf
/var/lib/mysql

⚠️ 不同 MySQL 大版本不要直接拷数据目录


4. 其他

crontab -l > crontab.txt

SSL:

/etc/letsencrypt
/usr/local/nginx/conf/ssl

三、目标服务器部署(新机器)

1. 安装 LNMP

保持版本一致最安全:

  • Nginx 同版本
  • PHP 同版本
  • MySQL 同版本

例如 Ubuntu:

apt install nginx php-fpm mysql-server

2. 恢复配置

tar xzf nginx_conf.tar.gz -C /
tar xzf php_conf.tar.gz -C /
tar xzf wwwroot.tar.gz -C /

检查:

nginx -t
systemctl restart nginx php-fpm

3. 恢复数据库

mysql -uroot -p < all.sql

如用数据目录方式:

systemctl stop mysql
cp -r mysql /var/lib/
chown -R mysql:mysql /var/lib/mysql
systemctl start mysql

4. 恢复 crontab

crontab crontab.txt

四、验证迁移是否成功

  • 访问网站
  • 查看 PHP 信息 phpinfo()
  • 数据库连接正常
  • HTTPS 正常
  • 日志无错误
tail -f /var/log/nginx/error.log

五、常见坑(很重要)

问题 原因
403 目录权限 / SELinux
500 PHP 版本不兼容
数据库连不上 用户权限 / host
时间不对 时区未设
中文乱码 数据库字符集

六、如果你用的是“一键包”

LNMP.org

./upgrade.sh

只迁移:

  • /home/wwwroot
  • /usr/local/nginx/conf
  • 数据库

宝塔

直接用 宝塔备份 + 恢复 最省事


七、我可以继续帮你

你可以告诉我:

  1. 源 & 目标系统(如 CentOS7 → Ubuntu22)
  2. 是否用宝塔 / LNMP.org
  3. 是否同版本

我可以直接给你一步一步可执行命令

0