当前位置:首页教程学院技术教程网站迁移与克隆实战:换域名、换主机零停机操作

网站迁移与克隆实战:换域名、换主机零停机操作


🪐前言

你可能会遇到这些情况:现在的主机越来越慢想搬走;买了个更好的域名想把旧域名换掉;或者想给网站做个完整的备份副本。不管哪种,你面临的是同一个操作:把整个 WordPress 网站从一个地方完整地搬到另一个地方。

"迁移"这个词听起来吓人——数据库丢了怎么办?网站打不开怎么办?客户刚好在访问怎么办?这些担心很正常,但 WordPress 迁移的工具和流程已经非常成熟。只要按步骤走,一个完整的网站迁移可以在不影响正常访问的前提下完成。

这篇文章给你两套方案——Duplicator 和 All-in-One WP Migration,外加一种零停机切换的高级策略。不讲理论,每一步都是你可以在自己网站上直接操作的命令和配置。

48-01-infographic-migration-overview.png

一、迁移前的准备工作

不管你用哪种方案,这四件事必须做在迁移操作之前。

🔒 第一件事:在旧主机上做一次完整备份

迁移过程中什么事都可能发生——网络中断、磁盘满、文件权限被改——你手里必须有一个能随时恢复的完整备份。

用 UpdraftPlus(免费插件)或主机自带备份功能,把 数据库 + 所有文件(包括 wp-content、主题、插件、上传图片)完整备份到本地电脑。不要只备份到远程存储(Google Drive 之类),迁移期间网络可能不稳定,本地一份是最稳妥的。

📋 第二件事:记录当前环境的所有关键配置

新主机环境要跟旧环境尽量一致,这些信息你得提前记下来:

  • PHP 版本(后台 → 工具 → 站点健康 → 信息 → 服务器)
  • MySQL 版本
  • 当前 PHP memory_limit(在站点健康里都能看到)
  • 当前使用的 PHP 扩展列表(如果用了 Redis、Imagick 等特殊扩展,新主机也要装上)
  • 当前域名和所有子域名的 DNS 记录(等会配置 DNS 要用)

🧹 第三件事:清理垃圾数据

迁移是清理的好时机。在旧网站上去做:

  • 删除垃圾评论
  • 删除文章/页面的修订版本(用 WP-Optimize 插件一键清理)
  • 清空已删除文章/页面的回收站
  • 删除不用的主题和插件
  • 清理缓存

这些都算在迁移体积里。一个臃肿的网站打包出来可能有好几百 MB,清理完可能只需要几十 MB,迁移速度快得多。

📐 第四件事:确认新主机满足最低要求

到新主机的面板里确认:

  • PHP 版本 >= 8.0(WordPress 6.x 推荐)
  • MySQL >= 8.0 或 MariaDB >= 10.4
  • 磁盘空间够放你当前网站体积的 3 倍(打包 + 解压 + 导入需要额外空间)
  • 如果网站超过 500MB,确认新主机没有上传文件大小限制

二、方案一:Duplicator 完整迁移流程

Duplicator 是我最常用的迁移工具,免费版就够用。它的工作原理是:把整个网站打成两个文件(一个安装包 + 一个压缩存档),你拿到新主机上跑一个安装向导,五分钟搞定。

📦 第一步:在旧网站上创建迁移包

在旧网站后台安装并激活 Duplicator(免费版)。

进入 Duplicator > Packages > Create New。点击"Build"按钮,Duplicator 会先扫描你的网站——如果数据库大小或文件总大小有警告,点开看具体是什么问题。最常见的是"Archive Size"超过服务器限制,解决方法:

  • 在 Archive 设置里排掉 /wp-content/backups/ 目录
  • 排掉缓存目录(如 /wp-content/cache/
  • 如果有大型 ZIP 文件在 uploads 里,选"File Filters"手动排掉

扫描通过后点击"Build",等待打包完成。完成后你会拿到两个文件:

  • installer.php(安装器)
  • [日期时间]_[网站名].zip(完整网站压缩包)

两个都下载到本地电脑。

🏗️ 第二步:在新主机上部署

在新主机的面板里创建一个新的数据库——记录下数据库名、用户名、密码,等会要用。

用 FTP 或主机文件管理器把 installer.php.zip 包上传到新主机的网站根目录(通常是 public_html)。

然后访问 https://新主机临时URL/installer.php(有些主机提供临时域名,域名还没解析过来之前先用这个)。

⚙️ 第三步:运行安装向导

Duplicator 安装向导分三步:

Step 1:环境检查。 它会检查 PHP 版本、目录权限、需要的 PHP 扩展是否齐全。全部 Pass 才能继续。如果有 Failed 项,截图给新主机客服,他们会帮你处理。

Step 2:数据库配置。 填刚才创建的数据库名、用户名、密码、主机地址(填 localhost,除非主机文档说不一样)。点击"Test Connection"确认连得上。

Step 3:更新 URL。 Duplicator 会自动检测新旧 URL 的差异并替换数据库中所有旧 URL。这里有一个关键操作:

Duplicator 的自动替换会覆盖文章中嵌入的图片链接、内部链接、序列化数据中的 URL。但小工具、主题设置里手动填的 URL 有时候替换不到。装完之后在每个页面和设置里快速扫一遍。

安装完成后,Duplicator 会自动删除 installer.php 和安装包文件。用新主机临时 URL 打开网站,确认首页、内页、后台都能正常访问。

48-02-flowchart-duplicator-wizard.png

三、方案二:All-in-One WP Migration 更轻量的选择

如果你网站比较小(500MB 以下),All-in-One WP Migration 是更快更简单的方案。一个按钮导出,一个按钮导入,不用手动上传 FTP。

📤 在旧网站导出

安装 All-in-One WP Migration 插件。进入 All-in-One WP Migration > Export。

点击"Export To" > "File"。插件会把整个网站(数据库 + 文件)打包成一个 .wpress 文件。等进度条走完,下载到本地。

⚠️ 免费版有 512MB 的导出文件大小限制。如果网站超过这个大小,需要买 Unlimited Extension(约 $69)或者用 Duplicator。别去网上找"破解版"——这种插件的"破解版"经常带后门,导出的时候就顺手把你的数据传到别人服务器上了。

📥 在新主机导入

在新主机安装 WordPress(全新安装,不需要导入任何示例内容)。装好之后安装 All-in-One WP Migration。

进入 All-in-One WP Migration > Import。上传刚才下载的 .wpress 文件。导入完成后插件会提示"即将覆盖当前数据库和文件"——确认,等几分钟。

导入完成后网站自动刷新。如果打不开,进入后台 → 设置 → 固定链接,重新保存一次。

🔄 两种方案怎么选

场景 推荐方案
网站 > 500MB Duplicator(免费无大小限制)
网站 < 500MB,想最简单 All-in-One WP Migration
换域名 + 换主机同时做 Duplicator(URL 替换更完整)
只需要克隆到本地测试 All-in-One WP Migration(快)
主机限制上传文件大小 Duplicator(可用 FTP 上传,绕过限制)

四、换域名的额外操作

如果迁移的同时还要换域名,Duplicator 的自动 URL 替换只是一个开始。下面这些地方也可能藏着旧域名,必须手动或批量替换。

🔗 必须手动检查替换的位置

后台 → 设置 → 常规:WordPress 地址(URL)和站点地址(URL),确认已经变成新域名。

后台 → 设置 → 固定链接:重新保存一次。

所有页面的内部链接:如果你在文章编辑器里手动填过指向旧域名的链接,Duplicator 替换时可能漏掉。用 Better Search Replace 插件(免费),搜索旧域名,替换为新域名。勾选所有数据库表,但先做一次"dry run"(模拟运行),确认匹配到的内容都是你想替换的,再执行真正的替换。

主题选项里的自定义 URL:用主题的自定义器检查一遍——logo 图片链接、Footer 里的版权链接、CTA 按钮的跳转地址。

Google Search Console 和 Google Analytics:把新域名加到 Search Console,做"地址变更"工具。GA 里的默认网址也更新一下。

📊 换域名后必做的收尾动作

// 1. 提交新域名的 sitemap 到 Google Search Console
// 2. 在 Search Console 使用"地址变更工具"通知 Google
// 3. 在旧域名上设置 301 全站重定向到新域名(参见第 49 篇文章)
// 4. 更新所有外部平台的链接(社交媒体、邮件签名、名片、B2B 平台)
// 5. 通知老客户"我们换域名了"

旧域名的 301 重定向至少要保留 6 个月。Google 重新索引需要时间,外链也需要时间更新。6 个月后检查 Search Console 确认旧域名的流量已经全部转移到新域名,再考虑让旧域名过期。


五、零停机切换:DNS 预解析 + TTL 降低策略

前面说的都是"先迁移、再切 DNS"的流程。这个过程中旧网站依然在旧主机上正常运行,迁移操作完全不影响访客。但有一步可能出现短暂空白:DNS 切换生效期间

DNS 记录全球生效需要 0-48 小时(取决于 TTL)。这期间有些访客看到的是旧主机上的旧网站,有些看到的是新主机上的新网站。如果你的网站有订单系统,这期间的订单可能分别落在两个数据库中。

⏱️ 零停机切换操作步骤

提前 24 小时操作:降低 TTL。 到你域名 DNS 管理面板(Cloudflare、Namecheap 等),找到 A 记录的 TTL 值,从默认的 3600 秒(1 小时)或更高改为 300 秒(5 分钟)。等至少原 TTL 时间过去(如果原来是 1 小时,等 1 小时),确保全球 DNS 服务器都按 5 分钟刷新。

迁移完成并验证后:修改 A 记录指向新主机 IP。 TTL 只有 5 分钟,全球生效最多 5 分钟——这就是你唯一的切换窗口。这 5 分钟内新旧网站同时存在,如果有用户操作可能会有极少量订单落在旧站上。

切换后关键操作

  • 在旧主机的网站上显示一个维护提示,避免客户继续操作(但不要关停——DNS 还没完全切换的访客需要看到你的网站)
  • 更好的做法是保持旧站运行但冻结数据库写入(禁用注册、评论、下单),这样 5 分钟后所有写入都在新站上
  • 切换成功 24 小时后,把 TTL 改回 3600 秒(减少 DNS 查询压力)
48-03-timeline-dns-cutover.png

六、迁移完成后的逐项验证清单

迁移成功不等于一切正常。按下面这个清单逐项检查——每项都要实际打开操作一遍,不要"看起来没问题"就跳过。

  • [ ] 首页能正常打开,图片不缺失、不显示旧域名的路径
  • [ ] 随机打开 5 篇文章/产品页面,检查图片、排版、链接
  • [ ] 后台能正常登录
  • [ ] 后台 → 工具 → 站点健康,全绿无警告
  • [ ] 上传一张测试图片到媒体库,确认文件权限正常
  • [ ] 安装一个新插件(然后删掉),确认文件系统可写
  • [ ] 提交一个测试表单(Contact Form 7 / WPForms),确认能收到邮件
  • [ ] 如果是 B2B 站,测试询盘表单是否正常发送
  • [ ] 如果是电商站(WooCommerce):加购 → 下单 → 支付 → 确认订单号连续 —— 完整的测试订单
  • [ ] 检查 SSL 证书是否在新主机上正确安装并自动续期
  • [ ] 用 GTmetrix 或 PageSpeed Insights 跑一次速度测试,对比迁移前后的数据
  • [ ] 用 Cron 检查工具(WP Crontrol 插件)确认定时任务正常注册
  • [ ] 查一遍数据库:用 phpMyAdmin 打开 wp_options 表,搜索 siteurlhome,确认值是新域名(Duplicator 通常会处理好,但手动确认一下不花时间)

七、迁移常见失败原因与预防

这些年帮人迁移网站踩过的坑,浓缩成一张表:

失败现象 原因 预防方法
导入到一半报错 新主机 PHP 内存不够 迁移前在站点健康确认 memory_limit >= 256M
安装器白屏/500 新主机 PHP 版本太低 迁移前确认 PHP >= 8.0
导入后图片全部 404 上传文件夹路径不同或权限不对 检查 uploads 目录权限为 755
导入后数据库报错 数据库字符集不匹配 新数据库创建时选 utf8mb4_general_ci
打包时卡住不动 网站太大 + 服务器超时 Duplicator 里分卷压缩(Package Settings > Archive > Split Archive)
导入后 URL 没替换干净 序列化数据或主题选项里的 URL 用 Better Search Replace 做一次全库替换
新站访问一直跳转旧域名 wp-config.php 或数据库里残留旧 URL 检查 wp-config.php 是否有硬编码的 WP_HOME / WP_SITEURL
新主机拒绝上传大文件 upload_max_filesize 限制 用 FTP 上传安装包绕过 HTTP 上传限制
迁移后网站变慢 新主机没有装页面缓存 安装 WP Rocket 或 LiteSpeed Cache 并配置
登录后自动跳转到旧域名 浏览器缓存了旧站的重定向 清浏览器缓存或用隐私窗口测试

总结

网站迁移的核心思路很简单:先在新主机上搭好一模一样的环境,再把数据搬过去,最后切 DNS 指过去

48-04-comparison-migration-tools.png
  • 📦 Duplicator 适合大站和复杂场景,两个文件打包,手动上传,安装向导自动替换 URL。
  • 🚀 All-in-One WP Migration 适合小站,一键导出导入,不碰 FTP,但免费版有 512MB 限制。
  • 🌐 换域名的最完整方案:Duplicator 自动替换 + Better Search Replace 全库替换 + 手动检查主题选项 + Search Console 地址变更 + 旧域名 301 半年。
  • ⏱️ 零停机的关键操作:提前把 DNS TTL 降到 300 秒,切换窗口只有 5 分钟。
  • 迁移后逐项验证:首页、后台、表单、邮件、订单、SSL 全部亲手测试一遍。
  • 📋 备份是第一道防线:任何时候迁移,第一件事永远是备份。出了问题你能回退。

官方求助路径

  • Duplicator 官方文档:https://duplicator.com/knowledge-base/ —— 从安装到故障排查覆盖所有场景
  • WordPress 迁移官方指南:https://wordpress.org/documentation/article/moving-wordpress/
  • All-in-One WP Migration 支持:https://help.servmask.com/ —— 常见导入失败问题的解决方案
  • Google Search Console 地址变更工具:https://support.google.com/webmasters/answer/83106

版权声明

   站内部分内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供网络资源分享服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请 联系我们 一经核实,立即删除。并对发布账号进行永久封禁处理。在为用户提供最好的产品同时,保证优秀的服务质量。


本站文章90%为原创内容,拥有所有权,转载时请加上所属。

给TA打赏
共{{data.count}}人
人已打赏
技术教程

Elementor与Gutenberg协同:混合建站工作流设计与性能平衡

2026-5-15 2:39:29

技术教程

WooCommerce基础配置全流程:产品、分类、支付、配送一步到位

2026-5-15 2:39:30

19 条回复 A文章作者 M管理员
  1. 二郎神

    那个验证清单里,用GTmetrix跑测试,迁移后速度反而变慢了咋整?

  2. 社交小达人

    之前迁移完发现媒体库图片全挂了,原来是uploads路径没改,一个个手动改的,累死。

  3. 风与云的对白

    Duplicator扫描的时候一堆警告,看着就烦,其实都能忽略。

  4. 幽灵魅影

    零停机那个操作,感觉跟变魔术一样,5分钟切换。

  5. 墨隐尘

    Better Search Replace确实好用,换域名必备。

  6. 划水专业户

    旧站冻结写入,是不是可以装个WP Maintenance Mode插件,然后只允许管理员访问?

购物车
优惠劵
今日签到
搜索