WP Migrate DB Pro 在多站点环境下的完全指南

VFX大学 wordpress开发 WP Migrate DB Pro 在多站点环境下的完全指南

  • This topic has 2 个回复, 1 个参与人, and was last updated 38 分 前 by 追光.
正在查看 2 条回复
  • 作者
    帖子
    • #984

      追光
      管理员

      WP Migrate DB Pro 是 WordPress 数据库迁移的顶级工具,而在 多站点(Multisite)环境下,它的优势更为明显。掌握多站点迁移技巧,可以让开发和部署效率成倍提升。

      下面我将详细讲解如何在多站点环境中使用 WP Migrate DB Pro,并介绍其核心的 Multisite Tools Addon(多站点工具扩展)


      核心概念:多站点工具扩展 (Multisite Tools Addon)

      多站点工具扩展是 WP Migrate DB Pro 的专属插件,它解锁了针对多站点的高级操作:

      • 支持从网络拉取单个子站点到本地单站点环境

      • 支持将本地单站点推送到网络中成为新的子站点

      • 支持整个多站点网络的迁移

      ⚠️ 使用前请确保已经安装并启用 WP Migrate DB Pro 及 Multisite Tools Addon。

      启用后,迁移界面会显示多站点相关选项,让你可以灵活操作子站点和网络。


      常见多站点工作流

      多站点环境下的迁移需求主要有两类:

      1. 从多站点网络中拉取单个子站点进行本地开发

      2. 将本地单站点推送到多站点网络成为新子站点


      场景一:拉取子站点到本地单站点

      这种流程适合开发和调试线上多站点网络中的某个子站点,而不影响线上环境。

      操作步骤:

      1. 本地准备空白单站点 WordPress 环境。

      2. 安装并激活 WP Migrate DB Pro + Multisite Tools Addon

      3. 在本地后台进入 工具 (Tools) → Migrate DB,选择 Pull

      4. 填写线上多站点网络地址和连接密钥(Secret Key),建立安全连接。

      5. 选择子站点

        • 勾选 “Migrate a subsite from the remote multisite install as a single site install”

        • 从下拉菜单选择目标子站点

      6. 自动查找与替换

        • 表前缀自动转换(如 wp_2_wp_

        • URL 和路径自动替换为本地环境

      7. 点击 Pull,完成后本地环境即为子站点的完整克隆。

      ✅ 这样可以安全地进行开发,无需担心影响线上网络。


      场景二:推送本地单站点到多站点网络

      适合本地开发完成的网站,想加入线上多站点网络。

      操作步骤:

      1. 在线上多站点创建空白子站点(容器)。

        • 进入 网络管理员 → 站点 → 新建站点

        • 记下子站点 ID

      2. 本地后台进入 工具 → Migrate DB,选择 Push

      3. 指定目标子站点

        • 勾选 “Push to a subsite on the remote multisite install”

        • 选择刚创建的空子站点

      4. 点击 Push

        • 表前缀自动转换(wp_wp_x_

        • URL 替换

      5. 完成后,本地单站点成功成为线上网络的新子站点。

      ⚠️ 注意用户数据冲突,避免覆盖线上已有用户。


      迁移整个多站点网络

      当需要迁移整个网络时:

      • Push:旧服务器 → 新服务器的空多站点安装环境

      • Pull:新服务器 → 旧服务器网络

      不需要勾选“子站点到单站点”或“单站点到子站点”的选项,插件会自动处理 URL 和表前缀替换。


      多站点迁移的重要注意事项

      1. 用户表共享

        • 所有子站点共享 wp_userswp_usermeta

        • 拉取子站点时会获取整个用户表

        • 推送单站点时需谨慎,避免覆盖重要用户数据

      2. 插件和主题文件

        • 多站点插件/主题管理在网络层

        • 若需同步文件,请使用 Media Files AddonTheme & Plugin Files Addon

      3. 备份数据库

        • 多站点数据库结构复杂

        • 在任何推送或拉取前,务必完整备份两端数据库


      最佳实践建议

      • 开发环境:拉取子站点到本地单站点,确保安全开发

      • 部署:推送经过充分测试的单站点到多站点网络

      • 自动化:结合 CI/CD,将迁移和备份流程自动化,提高效率

      • 安全:使用密钥连接,确保数据库迁移安全


      WP Migrate DB Pro + Multisite Tools Addon 能够显著提高多站点的开发、测试和部署效率。掌握这些技巧后,你将轻松管理复杂的多站点环境。

    • #986

      追光
      管理员

      1、在您wp-config.php文件中将WP_HTTP_BLOCK_EXTERNAL常量设置为true将停止来自您站点的所有出站网络请求,在使用WP Migrate DB Pro执行迁移时,此设置会导致插件无法与该站点建立通讯链接,您将看到此错误:

      The connection failed, an unexpected error occurred, please contact support. (#121 - scope: push)

      WordPress使用另一个常量;WP_ACCESSIBLE_HOSTS与WP_HTTP_BLOCK_EXTERNAL一起,允许特定主机通过块。首先,需要添加你同步的站点域名,以启用参与迁移的远程站点的主机URL:

      ///////////阻止与外部服务器的通/////////////////////////////////////////////
      define('WP_HTTP_BLOCK_EXTERNAL', true);
      
      define('WP_ACCESSIBLE_HOSTS', implode(',', [
          '127.0.0.1',
          'localhost',
          'newvfx.com',
          'www.newvfx.com',
          'dev.newvfx.com',
          'music.newvfx.com',
          'ai.x.newvfx.com',
          'qdrant.x.newvfx.com',
          'nps.n.newvfx.com',
          'dev.x.newvfx.com',
          // AI 接口
          'api.openai.com',
          'openrouter.ai',
          'api.pinecone.io',
          'api.azure.com',
          'c8584294-0932-42fc-b59c-ed99ac0190e3.us-west-1-0.aws.cloud.qdrant.io',
          '1024-nodqbxo.svc.aped-4627-b74a.pinecone.io',
          'mirrors.tuna.tsinghua.edu.cn',
          // 微信相关
          'api.weixin.qq.com',
          'open.weixin.qq.com',
          'api.mch.weixin.qq.com',
          // QQ 登录
          'graph.qq.com',
          'connect.qq.com',
          'open.qq.com',
          // 微博登录
          'api.weibo.com',
          'open.weibo.com',
          'login.sina.com.cn',
          // 支付宝
          'openapi.alipay.com',
          'bill.alipay.com',
          'direct.alipay.com',
          // 百度站长平台
          'data.zz.baidu.com',
          'ping.baidu.com',
          // Google 搜索控制台、Sitemap 提交等
          'www.googlebot.com',
          'search.google.com',
          // Google ping 提交 sitemap
          'www.google.com/ping',
          // Bing 网站验证与 sitemap ping
          'www.bing.com',
          'ssl.bing.com',
          'www.bing.com/ping',
          // Yandex 网站验证
          'webmaster.yandex.com',
          // Ahrefs、SEMrush、Majestic 等 SEO 工具可能会用
          'ahrefs.com',
          'majestic.com',
          'semrush.com',
          // Cloudflare 验证接口(如使用 Turnstile 或 API)
          'api.cloudflare.com',
          'challenges.cloudflare.com'
      ]));

      2、服务器的防火墙软件会拦截:

      
      
      ^/files\?action=SaveFileBody(&.*)?$
      ^/wp-admin/admin-post\.php\?(?:[^#]*&)?action=preload(?:&.*)?$
      ^/wp-admin/update\.php\?action=upload-plugin(?:&.*)?$
      ^/wp-admin/admin-ajax\.php(?:\?.*)?$
      ^/wp-json(?:/.*)?$
      ^https?:\/\/(?:[A-Za-z0-9-]+\.)*newvfx\.com(?:\/.*)?$
      

      可以在白名单加入

      ^/wp-admin/admin-ajax\.php$
      /wp-json/*

      拉而不是推
      迁移到具有活动防火墙插件的网站的最简单解决方案是拉入目标网站。防火墙不会阻止从目标站点到源站点的出站拉取请求。要使这种方法有效,源站点必须可以公开访问,这意味着从本地站点提取不是一个选项。从本地站点迁移时,请参考其他方法之一。

    • #998

      追光
      管理员

      把我的测试记录整理成一个文字表格形式,对比不同站点架构,写上实操记录和备注,便于下次查阅:

      WP DB Pro 同步测试记录与对比

      +————————-+———————+———————————————–+
      | 源站点 → 目标站点 | 成功率 | 实操记录 / 备注 |
      +————————-+———————+———————————————–+
      | 多站点 → 多站点 | 100% | 无论环境复杂,测试成功,自动同步稳定 |
      +————————-+———————+———————————————–+
      | 单站点 → 单站点 | 免费版支持 | 成功率高,免费版足够满足 |
      +————————-+———————+———————————————–+
      | 多站点子站 → 多站点子站 | 100% | 完全可靠,无需额外手工操作 |
      +————————-+———————+———————————————–+
      | 多站点主站 → 多站点子站 | 失败 / 需手工 | 自动同步不稳定,需要手工替换表前缀或配置文件 |
      +————————-+———————+———————————————–+
      | 多站点子站 → 单站点 | 100% | 完全成功,操作简单,适合快速搭建测试环境 |
      +————————-+———————+———————————————–+

      记录:多站点主站—另一个多站点中的子站 site url会替换错误,导致全站主链接成为

      
      home = https://dev.x.newvfx.com/wp-content/uploads/sites/2
      siteurl = https://dev.x.newvfx.com/wp-content/uploads/sites/2
      

      如果非要这样做,就在迁移完成后,再用这个插件的查找与替换功能将:

      https://子站域名/wp-content/uploads/sites/2

      替换为:

      https://子站域名

      🔑 总结规律
      1. 单站点 → 单站点:操作简单,免费版即可完成。
      2. 多站点子站 → 任意目标:成功率几乎 100%,最推荐用于迁移或测试。
      3. 多站点主站 → 子站:不推荐自动操作,需手工干预。
      4. 最佳实践:保持一个空框架(轻量 WordPress + 空数据库),然后用 WP DB Pro 拉取子站数据即可快速部署。

      最优建议:导入的站点,也就是新建的站点最好是全新的空站,空表,不开启任何主题、插件,只安装Wp migrate,能解决几乎所有导入过程中的故障。

正在查看 2 条回复
  • 在下方一键注册,登录后就可以回复啦。