WordPress 官方出了个免费搬家工具,不用先打包,还支持命令行,断了能续传
大家知道我和 VERKY 创建了「VPS 交流/分享/评测的微信群」(有兴趣加入的,可以先加 VERKY 个人号(微信号:PSD404),再拉你入群,与 1000+ VPS 玩家共同探讨!),群里很多人会为各种优惠的主机,各种搬家。
对于 WordPress 站点来说,主流做法是这样的:装个迁移插件,把文件和数据库压成一个大文件,下载下来,再上传到新站,解压导入。
第一,源站得先腾出空间。 打包的时候文件是双份的,一个几十 G 的站,主机可能直接报磁盘满。有的主机还会因为打包超时,把进程掐掉。
第二,断了要重来。 传到八成掉线,前面那些就白传了😅。有的插件支持续传,但多数人的体验还是从头再来一遍。
第三,大站被逼着掏钱。 如果你用了第三方插件进行迁移,免费版通常卡在导入大小上,超过就得买。各家算法不一样,有的是插件自己限,有的是被主机上传限制卡住,但结果一样:站一大,免费版就不够用。
WordPress 官方推出免费搬家工具 Reprint
其实这个问题,WordPress 官方早就知道。2024 年他们专门启动了一个 Data Liberation 项目,目标就一句话:你的数据,你应该能带走。
折腾了两年多,今天这个项目终于拿出第一件正经东西,叫 Reprint,免费、开源,装进 WordPress 就能用。

它是用来复制 WordPress 网站的文件和数据库的,插件已经上了官方插件目录,另外还配了一个命令行工具,不想点鼠标的可以直接在终端里跑。
https://wordpress.org/plugins/reprint/
换句话说,以后把整站从 A 主机搬到 B 主机,或者搬到你自己电脑上做测试,不用再先打包成一个大文件了。
Reprint 怎么搬家的?
它不打包。旧主机不用先腾出空间存一个大压缩包,文件和数据库一行一行、一块一块,直接传到你指定的新主机上。上面那三个问题,正好一条一条解掉:
- 源站不用先做大归档,不需要双份空间,下载能马上开始。
- 断了不用重来,已经传完的部分留着,同一条命令再跑一次,从断点继续。
- 也不用给钱了,没有导入这一步,也就没有了上传大小限制,站再大都不用买。
顺带还有个好处,重复搬的时候,它知道哪些文件没变,只传改动的那部分,第二次传输可能只有第一次的零头。
搬家最怕的不是搬不动,是搬过去打不开。
站一换域名,数据库里所有写死旧地址的地方都得改。文章正文里的链接好办,麻烦的是藏在结构里的那些:区块标记、短代码参数、JSON 字符串、base64 编码过的内容,还有 PHP 序列化数据。
序列化数据最麻烦,它把每个值的长度写死在前面,你把 URL 改短一个字符,后面全部对不上,那张表就废了。
Reprint 这块继承了 WordPress Importer 那套链接改写逻辑,然后扩到整个数据库上,序列化的长度字段也跟着重算。链接存在站点设置里、区块属性里、自定义字段里,都能一并换掉。
老站不用停,还能先做个测试站
迁移期间,访客可以继续正常访问原网站。你可以用 Reprint 复制网站,然后打开副本检查,确认页面能加载、图片能显示、表单能工作,再把访客引导过去。
不过打开副本之前,有几件事得先关掉。 新站是原站的完整拷贝,邮件、定时任务、支付这些对外连接也都跟着过来了。不关的话,副本一跑,定时任务就开始执行,邮件真发出去,支付真扣钱。官方指南专门提了这一段,Reprint 不管这些,只能自己动手。
准备好切换的时候,暂停原网站的更改,做最后一次复制,然后把域名指向新主机。WordPress 官方还给了一份分步指南,带着走完整个迁移流程:
https://developer.wordpress.org/reprint/guides/move-to-another-host/
甚至可以用 Reprint 做一个测试副本,专门拿来做开发环境。拿它试新主题、试新插件,或者看看 WordPress 更新之后一切是不是还正常。不过这个副本同样得先把对外连接关掉,不然试插件试出一封真邮件就不太妙。
怎么用 Reprint
源站先装 Reprint 插件,装完「工具」里会多一个 Reprint Server。

然后到接收的主机上准备客户端,这是一个命令行工具,要 PHP 7.4 以上:
curl -fL https://plugins.svn.wordpress.org/reprint/downloads/reprint.phar -o reprint.phar
php reprint.phar --version
生成一对密钥,这一步同时会打印出一个 Migration Token:
php reprint.phar keygen https://source.example \
--state-dir=/srv/reprint-state --out=/srv/reprint-key.pem
把这个 Token 粘到源站的 Reprint Server 页面里点授权,再跑 pull,文件和数据库就一起下来了。数据库落地可以选 MySQL 或者 SQLite(本地测试建议用)。
php reprint.phar pull https://source.example \
--private-key-path=/srv/reprint-key.pem \
--state-dir=/srv/reprint-state --fs-root=/srv/reprint-files \
--flatten-to=/srv/site \
--target-engine=mysql --target-host=127.0.0.1 \
--target-user=site_user --target-pass=YOUR_DATABASE_PASSWORD \
--target-db=site_database --new-site-url=https://destination.example \
--runtime=none --start-runtime=none
详细参考还是看这个迁移流程:
https://developer.wordpress.org/reprint/guides/move-to-another-host/
总结两句
Reprint 出来之前,官方能给的只有「导出文章和页面」,导出来一个 XML,跟主题、插件、设置都是分开的。整站搬家这块一直留给第三方,各家有各家的格式、各家的收费点,搬完想换一家还得再来一遍。现在官方自己下场,免费、开源、不带自己的云服务,数据从源站直接到你手上,这个姿态比功能本身更值钱。
不过它还很新,插件 0.11.8 版,插件目录里的活跃安装数 40 出头,先拿测试站跑一遍,别直接在生产站上试。而且是单向的,只能拉不能推;好在数据不经过 Reprint 的服务器,直接从源站到你机器上。
最后插件下载地址:
https://wordpress.org/plugins/reprint/
🪧 最后有兴趣想加下我和 VERKY 创建的「VPS 交流/分享/评测的微信群」的同学,可以先加 VERKY 个人号(微信号:PSD404),再拉你入群,与 1000+ VPS 玩家共同探讨!
如有其他问题,欢迎在评论区留言~ 💬
