All-in-One WP Migration、Duplicator、宝塔一键迁移、rsync手动搬家、主机商代迁移,五种网站搬家方式跑了一遍,适合不同人的方案不一样
上个月帮一个做了三年外贸站的朋友搬家,从某云虚拟主机搬到VPS。他网站不大,大概2GB,插件+主题+文章+图片全算上。他说"搬家嘛,打包下载再上传不就完了"。结果FTP下载花了40分钟、上传花了1小时、导入数据库报编码错误、wp-config改完数据库名发现网站空白、排查两小时发现是PHP版本不兼容、最后折腾到凌晨三点才搞定。
搬完他问我:明明有那么多一键搬家工具,为什么还要手动折腾?我给他列了五种主流方案,每种的操作复杂度、可靠性、适用网站大小都不一样。这篇就把这五种方案拆开说清楚——包括每种怎么操作、什么情况翻车概率最高、以及一个很多人忽略的关键点:搬家不只是搬文件,数据库里的URL替换、序列化数据兼容、DNS切换时机、SSL证书迁移,随便哪个环节出错,网站就挂在那打不开了。
五种搬家方式的核心差异,先看一张表
| 1 | All-in-One WP Migration:插件打包一键导出导入,500MB以下免费,操作最简单,上限受上传限制 |
| 2 | Duplicator:打包成installer.php+archive.zip双文件,适合大站,需要在新服务器运行安装向导 |
| 3 | 宝塔面板一键迁移:SSH直连源服务器,速度最快,但要求两端都有宝塔且API版本兼容 |
| 4 | rsync + 数据库导出导入:最灵活、最可靠,适合10GB以上大站,但对命令行有要求 |
| 5 | 主机商免费代迁移:提交工单别人帮你搬,零操作,但只能搬到同一家主机商,且可能等1-3天 |
一、All-in-One WP Migration:操作门槛最低,一个.wpress文件搞定全部
这个插件在WordPress官方仓库有超过400万活跃安装量,是使用人数最多的搬家工具。它的逻辑很直接:把整站(数据库+主题+插件+上传文件+配置文件)打包成一个.wpress文件,下载下来,在新站安装同样的插件,导入这个文件,完成。
整个过程对新手极其友好——不需要碰FTP、不需要导出导入数据库、不需要手动改wp-config.php、不需要用SQL替换URL。插件导入时会自动处理URL替换和序列化数据兼容问题,这两点是手动搬家最容易翻车的环节。
操作流程(全程约15-30分钟):
① 原站安装All-in-One WP Migration插件 → ② 点击"导出"→"导出到文件"→ 等待打包完成 → ③ 下载.wpress文件到本地 → ④ 新服务器装好WordPress(空白站点) → ⑤ 安装同一个插件 → ⑥ 点击"导入"→ 选择.wpress文件 → ⑦ 等待导入完成 → ⑧ 插件提示"导入成功",更新固定链接即可访问。

免费版的限制是上传大小上限——通常受PHP的upload_max_filesize限制,默认2MB-8MB不等。你可以在php.ini里调大这个值,但很多虚拟主机不让改。如果网站超过512MB(插件的硬限制),有两个办法:一是用插件的"FTP扩展"功能直接上传到服务器绕过HTTP上传限制;二是花69美元买无限版。
容易翻车的点:导入时如果新站已有内容,插件会覆盖整个数据库,包括已有的文章和设置。所以新站必须是干净的WordPress安装,不能有任何你不想丢失的内容。另外,如果.wpress文件超过2GB,Chrome浏览器下载时可能断掉,建议用Edge或Firefox。
二、Duplicator:适合大站和需要换域名的场景,打包+安装向导两步走
Duplicator的思路和All-in-One不一样。它不是导出一个大文件,而是打包成两个文件:installer.php(安装脚本)和archive.zip(网站数据包)。把这两个文件上传到新服务器的网站根目录,浏览器访问installer.php,会弹出一个安装向导界面,让你填新数据库信息、新域名,然后自动完成部署。
这个设计有两个好处:一是可以自定义排除不需要的文件夹(比如缓存目录wp-content/cache),打包体积更小;二是安装向导里直接可以填新域名,不需要额外做URL替换。对于需要同时换域名的搬家场景,Duplicator比All-in-One更省一步。
适合的场景:网站超过1GB、需要同时更换域名、服务器不支持修改PHP上传限制、需要对打包内容做筛选(排除缓存/备份文件)、多个子站点需要从同一个模板复制部署。
免费版Duplicator在打包大站时可能会因为PHP执行超时而中断。解决方法是在打包设置里开启"MySQL Dump"模式(用mysqldump命令导出数据库,不走PHP),以及在wp-config.php里临时调高max_execution_time。另外,如果archive.zip超过2GB,建议用FTP上传而不是浏览器上传。
All-in-One WP Migration
操作难度:★☆☆☆☆ 极低
适用网站大小:500MB以下最稳
换域名支持:自动替换,但偶有遗漏
翻车风险:上传限制+覆盖数据库
Duplicator
操作难度:★★☆☆☆ 较低
适用网站大小:1-5GB
换域名支持:安装向导中填写,可靠
翻车风险:PHP超时+archive.zip不完整
三、宝塔面板一键迁移:最快的方案,前提是两边都装了宝塔
如果你的新旧服务器都装了宝塔面板(或者至少新服务器有宝塔),这个方案的速度甩插件方案几条街。原理是宝塔通过SSH直连源服务器,用rsync增量同步文件,用mysqldump导出导入数据库,全程走服务器之间的内网/公网通道,不经过你的本地电脑。
操作步骤:新服务器宝塔面板 → 软件商店安装"宝塔一键迁移API版本" → 填旧服务器的SSH信息(IP、端口、root密码)→ 检测连接 → 勾选要迁移的网站和数据库 → 点击"一键迁移"→ 等待完成。一个5GB的网站,如果两台服务器带宽够大,10分钟以内就能迁完。
三个限制条件:
① 旧服务器必须开启SSH且允许root登录(部分云厂商默认禁root,需先配置)
② 宝塔API版本要兼容,新版本宝塔迁老版本宝塔的站可能报API不匹配
③ 如果旧服务器有特殊环境配置(自定义Nginx模块、非标PHP扩展),迁过去后可能跑不起来,需要手动补环境
宝塔一键迁移最适合的场景是多站批量搬家。一个服务器上跑了七八个WordPress站,手动一个一个搬要命,宝塔可以全选、一次性迁完。迁移完成后,新服务器上的网站目录结构、数据库、Nginx配置、SSL证书(如果用了宝塔的Let's Encrypt)都会自动配好。唯一需要手动处理的是域名DNS解析切换。
四、rsync + 数据库导出导入:最可靠,也最灵活,大站首选
如果你的网站超过10GB,或者用了非WordPress程序(Z-Blog、Typecho、ThinkCMF等),插件方案基本用不了。这时候rsync是唯一靠谱的选择。rsync是Linux自带的文件同步工具,只传输有变化的文件,支持断点续传,网络中断后可以接着传,不会从头开始。

整个流程分成四步:
# 第一步:在新服务器上执行,从旧服务器同步整站文件rsync -avzP -e "ssh -p 22" root@旧服务器IP:/www/wwwroot/你的网站/ /www/wwwroot/新网站目录/# 第二步:在旧服务器上导出数据库mysqldump -u 数据库用户名 -p 数据库名 > backup.sql# 第三步:把数据库文件传到新服务器scp backup.sql root@新服务器IP:/tmp/# 第四步:在新服务器上导入数据库mysql -u 新数据库用户名 -p 新数据库名 < /tmp/backup.sql数据库导入之后还有一个关键步骤:替换数据库里的旧URL为新URL。如果是WordPress,推荐用WP-CLI的wp search-replace命令,它会自动处理序列化数据。不要直接用SQL的REPLACE语句去替换,WordPress把很多配置存成了序列化格式(比如主题设置、小工具位置),REPLACE会破坏序列化的字符计数,导致整块配置失效。
手动搬家最容易被忽略的三个细节:
① 文件权限:rsync同步后,新服务器的文件owner可能变成root,导致网站无法写入(上传图片失败、插件无法更新)。需要执行 chown -R www:www 网站目录 修正
② wp-config.php中的数据库表前缀:如果新旧数据库表前缀不一致,wp-config.php里的$table_prefix要改
③ .htaccess或Nginx伪静态规则:从Apache迁到Nginx,伪静态规则完全不同,需要手动转换
五、主机商免费代迁移:零操作,但要等,而且有边界
现在大部分主机商(SiteGround、Cloudways、Hostinger、阿里云、腾讯云)都提供免费网站迁移服务。你只需要提交一个工单,提供旧主机的登录信息(FTP/cPanel/SSH),他们的技术支持团队会在1-3个工作日内帮你把网站迁过去。
听起来很省心,但有几个现实问题:第一,只能迁到他们自家的主机,你不能让SiteGround帮你迁到阿里云;第二,技术支持人员的水平参差不齐,遇到复杂环境(比如用了Redis对象缓存、CDN自定义配置、非标PHP扩展),他们可能搞不定,最后还是你自己来;第三,迁移过程中网站可能被暂停,他们没有"零停机迁移"的义务,除非你买的是高端方案。
rsync手动搬家
操作难度:★★★★☆ 需命令行
适用网站大小:无限制,10GB+首选
换域名支持:需手动SQL替换
翻车风险:权限+序列化+环境差异
主机商代迁移
操作难度:★☆☆☆☆ 零操作
适用网站大小:取决于主机商
换域名支持:一般不支持
翻车风险:等待时间长+复杂环境搞不定
六、文件搬完了≠搬家完成,DNS切换和SSL证书才是最后的坎
很多人以为文件拷过去、数据库导进去、网站能打开了就完事了。其实搬家最容易出问题的环节在DNS切换。DNS记录有TTL(缓存时间),修改解析后全球生效需要几十分钟到48小时。在这段时间里,有的用户访问新服务器、有的访问旧服务器,如果旧服务器上的网站还在运行(比如有人在上面下单、评论),新服务器上的数据就跟不上了。
标准做法是:先在旧服务器上把网站设为只读模式(或暂停评论/下单功能),然后切DNS。如果对停机时间要求极严,可以在切DNS之前把新服务器配置好、用hosts文件本地测试通过,然后降低DNS的TTL到300秒(5分钟),切完解析后再恢复TTL。
用hosts文件在切DNS之前验证新站:
Windows:编辑 C:\Windows\System32\drivers\etc\hosts,加一行新服务器IP 你的域名.com www.你的域名.com
保存后浏览器访问你的域名,实际访问的是新服务器。测试通过后删掉这行,再切DNS。
SSL证书是另一个容易被忽略的点。如果用Let's Encrypt免费证书,搬到新服务器后需要重新申请。如果用付费证书,需要导出私钥和证书文件带到新服务器。如果是Cloudflare的灵活SSL模式,证书挂在Cloudflare边缘节点,搬家不需要管SSL——但要记得更新Cloudflare里域名的A记录指向新服务器IP。
七、五选一决策清单:按网站大小和技术水平对号入座
| 你的情况 | 推荐方案 | 预计耗时 |
|---|---|---|
| WordPress,500MB以下,新手 | All-in-One WP Migration | 15-30分钟 |
| WordPress,1-5GB,需换域名 | Duplicator | 30-60分钟 |
| WordPress,5GB+,两端都有宝塔 | 宝塔一键迁移 | 10-30分钟 |
| 10GB以上大站、非WP程序 | rsync + 数据库手动 | 1-3小时 |
| 完全不想操作、不赶时间 | 主机商代迁移 | 1-3天 |
如果你是运营多站矩阵的,建议花时间掌握rsync+数据库的手动方案,然后写一个Shell脚本把流程自动化。比如用UC建站系统管理的站群,每新增一个站都走统一的环境配置模板(PHP版本、Nginx规则、Redis配置),搬家时只要改一下域名和数据库名两个变量,脚本自动跑完全程。五个站和五十个站的搬家成本,在脚本面前没差别。
最后说一个很多教程不提的事:搬完家之后,旧服务器不要立刻删。至少保留3-7天,每天检查新站的访问日志和错误日志,确认一切正常。DNS缓存可能让部分用户在切解析后48小时内仍然访问旧服务器,旧站至少要保持一个静态的"网站已迁移"提示页,避免用户看到连接错误。
网站搬家说穿了就是两件事——数据不丢、访问不断。五种方案没有绝对的好坏,选哪个看你的网站多大、会不会命令行、赶不赶时间。唯一确定的规则是:搬家前先完整备份,新站用hosts验证通过再切DNS,旧服务器保留一周再删。做到这三点,翻车概率能降到最低。
