云服务器网站迁移完整教程(备份→搬家→切换域名,适用于宝塔/原生Linux,PHP网站:WordPress、织梦、Typecho、苹果CMS、Discuz等)

云服务器网站迁移完整教程(备份→搬家→切换域名,适用于宝塔/原生Linux,PHP网站:WordPress、织梦、Typecho、苹果CMS、Discuz等)

核心思路:旧机完整备份(网站文件+数据库)→新机部署环境→上传恢复文件+导入数据库→修改网站配置→测试访问→解析域名,最后保留旧服务器7天做回滚
推荐环境:CentOS7/8、Debian、Ubuntu,宝塔面板最简单;如果不用宝塔,文末附原生命令版。

QQ20261009-005206

一、迁移前准备

  1. 两台云服务器:旧服务器(源)、新服务器(目标),同架构最好(都是Linux)
  2. 新服务器提前放行端口:80、443、22、3306(安全组/防火墙)
  3. 记录旧站关键信息:
    • 网站根目录路径(如 /www/wwwroot/域名)
    • 数据库名、数据库账号、密码(wp-config.php / config.php 里)
    • PHP版本、MySQL版本(尽量新旧版本一致,避免报错)
    • 域名DNS服务商账号(后面改解析)
  4. 重要原则:迁移期间不要在网站新增数据;正式切换前旧服务器保持运行

第一部分:旧服务器【网站数据备份】
方式A:宝塔面板备份(推荐新手)

  1. 备份网站文件
  2. 登录旧服务器宝塔面板 → 网站 → 找到你的站点
  3. 点击备份,选择备份网站(勾选:网站目录)
  4. 备份完成后,在【文件】→【备份目录】下载压缩包到本地电脑,或者直接打包后传到新服务器。

备选手动打包:文件管理器进入网站根目录,全选压缩为 webfile.zip

  1. 备份MySQL数据库
  2. 宝塔 → 数据库 → 找到对应数据库 → 备份
  3. 导出.sql数据库备份文件

⚠️ 优先导出sql,不要只用面板整机备份,跨服务器恢复容易出问题。

【重要】把 webfile.zip + xxx.sql 两个文件保存好。

方式B:Linux命令手动备份(无宝塔)
① 打包网站文件

 进入网站目录,打包,示例路径自行替换
cd /www/wwwroot/yourdomain
tar -zcvf webfile.tar.gz .

② 导出数据库(替换账号、库名)

mysqldump -u数据库账号 -p 数据库名 > backup.sql
 输入数据库密码,生成backup.sql

打包完成后,用 sz 下载到本地,或者scp传到新服务器。

可选:直接跨服务器传输文件(不用下载本地)

 在旧服务器执行,传到新机(新机IP、ssh账号密码)
scp webfile.tar.gz root@新服务器IP:/root/
scp backup.sql root@新服务器IP:/root/

第二部分:新服务器环境部署

目标:新服务器环境和旧服务器尽量保持一致(PHP版本、数据库版本、Nginx/Apache)
宝塔环境部署

  1. 登录新服务器ssh,安装宝塔面板(官网脚本)
  2. 进入宝塔面板 → 软件商店,安装:
    • Nginx(推荐)或 Apache
    • MySQL 5.7 / 8.0(和旧机一致)
    • PHP(和旧网站一致版本,如PHP7.4 / PHP8.1)
  3. 添加站点:网站 → 添加站点,填写域名,先不要解析,数据库这里可以选择「创建数据库」,记下新机数据库账号密码(后面修改网站配置)

不要直接覆盖文件,先新建站点!

原生Linux环境(不使用宝塔)

  1. 安装Nginx + MySQL + PHP对应版本
  2. Nginx新建站点配置文件,配置root网站目录
  3. 登录mysql,手动创建空数据库、数据库用户,赋予权限
CREATE DATABASE 新库名 DEFAULT CHARACTER SET utf8mb4;
CREATE USER '新用户'@'localhost' IDENTIFIED '密码';
GRANT ALL PRIVILEGES ON 新库名. TO '新用户'@'localhost';
FLUSH PRIVILEGES;

第三部分:新机恢复网站文件 + 导入数据库

  1. 上传网站文件
    宝塔操作
  2. 文件管理器进入新站点网站根目录
  3. 上传 webfile.zip,解压,覆盖目录

✅ 注意:解压后检查,网站文件要直接在根目录,不要套一层文件夹!(常见坑:压缩包里面还有一层文件夹,访问404)

命令行

 进入站点目录
cd /www/wwwroot/yourdomain
 上传webfile.tar.gz到这里,解压
tar -zxvf webfile.tar.gz
  1. 导入数据库
    宝塔导入
  2. 数据库 → 找到新创建的数据库 → 导入
  3. 选择上传 backup.sql 文件,执行导入。

如果sql文件很大,建议用命令导入,宝塔大文件上传容易超时。

命令行导入(大数据库首选)

 登录mysql导入
mysql -u新机数据库账号 -p 新机数据库名 < backup.sql

输入密码等待完成。

  1. 修改网站数据库配置文件【最关键一步】
    网站程序需要改成新服务器数据库信息
    找到网站配置文件,不同程序路径:
  • WordPress:wp-config.php
  • Typecho:config.inc.php
  • 苹果CMS:application/database.php
  • Discuz:config/config_global.php
  • 织梦:data/common.inc.php

修改里面四项:

数据库名 = 新服务器数据库名
数据库用户 = 新服务器数据库账号
数据库密码 = 新服务器数据库密码
数据库主机:localhost(大部分情况不用改)

保存文件。

  1. 权限设置(Linux必做,否则500/空白页)
    宝塔
    网站 → 设置 → 目录权限:
    网站目录权限 755,文件权限 644,运行用户www。

命令行

 进入网站根目录执行
chown -R www:www /www/wwwroot/yourdomain
chmod -R 755 /www/wwwroot/yourdomain
  1. Nginx伪静态配置
    宝塔网站设置 → 伪静态,选择对应程序规则(WP、Typecho、Discuz),和旧服务器保持一致,否则url打不开。

  2. 测试访问(先不解析域名!用hosts本地测试)

⚠️ 不要直接改域名解析!先本地hosts测试,确保网站在新机正常打开
Windows修改hosts
路径:C:\Windows\System32\drivers\etc\hosts
用记事本打开,在末尾添加一行:

新服务器IP   你的域名 shturl.cc/N

保存。然后浏览器访问域名,此时访问的是新服务器网站。

✅ 检查项:

  • 首页正常打开
  • 内页链接、图片、附件全部正常
  • 后台可以正常登录
  • 提交表单、评论功能正常
  • 无报错、无乱码(乱码一般是数据库字符集utf8mb4问题)

测试有问题:排查PHP版本、伪静态、数据库账号密码、文件权限。没测试通过不要切换解析!

测试完毕后,记得删掉hosts里面这一行。


第四部分:切换域名解析 + 切换后校验

  1. 登录域名服务商(阿里云/腾讯云/Cloudflare),修改A记录:
    将域名A记录,旧服务器IP → 修改为新服务器公网IP
  2. DNS解析生效时间:几分钟~24小时(TTL越小越快,建议提前把TTL改成600)

解析生效期间,一部分用户访问旧服务器,一部分访问新服务器。迁移期间停止发布新文章,防止两边数据不同步。

切换完成后检查

  1. 访问网站、后台
  2. HTTPS证书:宝塔申请SSL,绑定域名,强制HTTPS(和旧站一致)
  3. robots.txt、sitemap、图片CDN地址(如果有CDN,CDN源站IP改成新服务器)
  4. 检查网站日志,看是否大量404、500错误

第五部分:迁移收尾与回滚方案(非常重要)
✅ 旧服务器不要立刻删除!保留7天

  • 7天内网站一切正常:再考虑销毁旧服务器实例、备份删除
  • 出现重大故障:改回域名A记录到老IP,快速回滚

迁移后优化可选操作

  1. 清除网站缓存(WP缓存插件、cms后台缓存)
  2. 重新生成站点地图sitemap,提交搜索引擎
  3. 检查服务器定时任务(宝塔计划任务:备份、采集等,需要在新机重建计划任务)

重点:旧服务器的定时任务不要同步运行,会同时读写两边数据库。


常见坑&排错清单

  1. 网站空白/500错误:PHP版本不对、文件权限不足、配置文件数据库信息写错
  2. 图片不显示:路径问题、防盗链、hosts测试时浏览器缓存,Ctrl+F5强制刷新
  3. 数据库乱码:导出和导入字符集不一致,统一使用utf8mb4
  4. 登录后台提示密码错误:数据库导入失败,重新导入sql
  5. 404页面:伪静态没有配置、网站文件放错文件夹
  6. 上传附件失败:PHP上传限制、目录权限

可选进阶:增量迁移(大型网站,减少停机时间)
适合数据量大、不能长时间停机网站:

  1. 第一次全量备份迁移(如上步骤),hosts测试正常
  2. 旧服务器开启增量同步(rsync同步网站文件,mysqldump增量导出数据库),把切换解析前新增数据同步到新机
  3. 短暂停机,最后一次同步,切换域名解析,缩短网站中断时间。
posted @ 2026-10-09 00:53  BLOGAME  阅读(19)  评论(0)    收藏  举报