用All-in-One WP Migration导出2.8GB的电商站,跑到87%的时候弹了"上传文件大小超过512MB限制",折腾了一下午改PHP配置才搞定。用Duplicator打包同一个站,压缩包生成成功但传到新服务器后installer.php一直卡在"Step 2: Database Installation",查了半天发现是新服务器的MySQL版本比旧服务器低,导出的SQL里有新版本才支持的语法。用rsync手动迁移一个纯静态站,传完文件发现数据库忘了导出,用户数据全丢。用宝塔面板一键迁移API迁移一个带10GB图片的网站,服务器8GB内存在压缩阶段直接爆满,SSH都连不进去
网站迁移镜像工具的选择,本质上是在"操作简单"和"控制力"之间做取舍。插件一键迁移适合512MB以下的小站,几分钟搞定但遇到大站和复杂环境就翻车。rsync手动迁移适合任何规模,但每一步都要你自己控制,漏一步就出事。面板迁移工具适合同一面板环境,但被面板版本和环境锁定。没有哪个工具是万能药,搞错场景等于给自己挖坑。
一、WordPress迁移三款插件,免费版和付费版是两个世界
| 对比维度 | All-in-One WP Migration | Duplicator | Migrate Guru |
|---|---|---|---|
| 免费版文件限制 | 512MB(硬限制) | 约500MB建议,超了也能试 | 无硬性限制(云端中转) |
| 操作步骤 | 3步:Export → 下载.wpress → Import | 4步:打包 → 上传zip+installer.php → 访问installer.php → 按向导填数据库 | 3步:输入目标站点信息 → 自动传输 → 完成 |
| URL替换 | ✅ 自动替换,处理序列化数据 | ✅ 自动替换,序列化数据处理最成熟 | ✅ 自动替换 |
| 3GB站点迁移速度 | 约15分钟(导出+导入) | 约12分钟(打包+解压) | 约8-10分钟(云端直传,不走本地) |
| 最大翻车点 | 512MB硬限制+大数据库内存溢出 | 大站打包超时+MySQL版本不兼容 | 依赖第三方云端中转,数据传输隐私问题 |
| 付费版价格 | Unlimited Extension约$69 | Pro版约$69/年起 | 完全免费 |
二、非WordPress站:rsync vs Docker vs 面板工具
静态站、自研PHP系统、其他CMS(Drupal/Joomla/Typecho等)没有现成的迁移插件,只能走通用方案。
| 方案 | 适合场景 | 核心命令/操作 | 致命翻车点 |
|---|---|---|---|
| rsync手动迁移 | 任何规模,需完全控制力 | rsync -avzP /源/ user@IP:/目标/ mysqldump → 传输 → mysql导入 | 忘记导出数据库、文件权限丢失、URL替换不完整、序列化数据损坏 |
| Docker镜像迁移 | 环境复杂、需环境一致性 | docker commit → docker save → scp tar → docker load → docker run | 数据没挂载Volume(容器删除=数据全丢)、镜像体积膨胀(打包了缓存和临时文件) |
| 宝塔一键迁移API | 同为宝塔面板环境 | 安装插件→输入目标面板API密钥→一键迁移 | 大文件压缩耗光内存(10GB图片+8GB内存=SSH都连不上)、面板版本不一致必翻车 |
| rclone云中转移 | 跨云迁移、无直连网络 | 打包→rclone上传到OSS/S3→新服务器下载→解压恢复 | 打包时网站仍在写入导致数据不一致、大压缩包下载中断需重传 |
三、五个翻车场景,每个都有人中过招
四、迁移后必做的七项验证
| 检查项 | 怎么验 | 常见的坑 |
|---|---|---|
| 首页+内页正常加载 | 浏览器访问+查看页面源代码确认资源路径都是新域名 | 首页正常但内页404→固定链接没刷新 |
| 图片/媒体正常显示 | 随机点开10篇文章检查图片+后台媒体库浏览 | 图片URL还是旧域名→替换不完全 |
| 表单/搜索/购物车 | 提交一次测试表单,搜索一个关键词 | 表单提交报错→数据库连接或SMTP没配 |
| 登录后台 | 用已有账号登录,确认能进入后台 | 登录后跳回旧域名→wp-config或数据库siteurl没改 |
| 固定链接 | 后台设置→固定链接→重新保存一次 | 内页404→.htaccess或Nginx rewrite规则没生效 |
| SSL证书 | HTTPS访问+检查证书有效期 | 证书路径不对或根本没配 |
| 缓存/CDN配置 | 清空缓存+确认CDN回源地址已更新 | CDN还在回源到旧服务器→内容不一致 |
五、按站点类型和规模选方案
| 你的站点 | 推荐方案 | 月成本 | 一句话理由 |
|---|---|---|---|
| WordPress站 < 512MB | All-in-One WP Migration 免费版 | $0 | 三步搞定,不需要技术背景 |
| WordPress站 512MB-3GB | Duplicator 免费版 | $0 | 免费版无硬限制,序列化数据处理最好 |
| WordPress站 > 3GB | rsync + mysqldump 手动迁移 | $0 | 增量同步最快,无大小限制 |
| 静态站/非WP CMS | rsync + 手动导数据库 | $0 | 通用方案,任何技术栈都适用 |
| 宝塔面板→宝塔面板 | 宝塔一键迁移API(大文件先rsync传) | $0 | 同面板环境最省心,但大文件先手动传 |
| 环境复杂需精确复制 | Docker镜像迁移 | $0 | 一次构建到处运行,但要会挂Volume |
| 跨云/跨机房无直连 | rclone 中转 | 云存储按量 | 源和目标不需要同时在线 |
| 零技术+零预算 | Migrate Guru | $0 | 完全免费且无文件大小限制 |
网站迁移的坑90%不是因为工具不好,而是因为工具和场景不匹配。512MB以下的WordPress站用All-in-One WP Migration,三个按钮十分钟搞定;超过3GB的站硬要用插件迁移,改PHP配置改Nginx配置折腾一下午不如rsync一条命令15分钟传完。面板迁移工具只适合同面板同版本环境,跨面板跨版本迁移老老实实走rsync。Docker方案环境一致性最好但数据持久化是新手最容易踩的坑。迁移前记住三件事:切维护模式停止写入、先验证目标环境MySQL版本和PHP版本不低于源环境、迁移完旧服务器保留48小时不删做回滚备份。这三条做到,基本不会出大事故。


