搬家最坑的地方不是搬,是很多人搬完才发现数据库根本没备份。WordPress的文件在目录里,数据库却装在独立的MySQL或MariaDB里,两个地方分开存。你把整个目录下载下来,文章、用户、设置一样都没带走。官方给的顺序是先备份数据库再备份文件,还原时反过来,先恢复文件再导入数据库。
对做出海站的人,搬家最贵的成本不是重装一遍,是站停着的那几天没有询盘也没有订单。换机器这件事躲不掉。第一次建站的,先看WordPress建站教程。
这些工具和官方文档在中国大陆能不能正常使用,以官方为准。
- 搬的是两样东西,数据库和文件,缺一不可。
- 官方顺序是备份先数据库后文件,还原先文件后数据库。
- 改了数据库账号,wp-config.php里那四项必须跟着改。
- 迁移后打不开,先看wp_options里的siteurl和home,官方给了四种改回地址的方法。
这篇把搬家这一件事拆成能照着做的步骤,说清在哪个后台点什么、看到什么结果算通过、出问题从哪回查。
本文目录
WordPress迁移到底要搬哪两样东西
搬家不是把文件夹复制过去就完了。WordPress站点由两部分组成,一部分在数据库里,一部分在文件里,两样都得拿到手,才能完整还原一个典型的WordPress站点。

数据库存在MySQL/MariaDB里,不在WordPress目录内
文章、页面、评论、用户、设置这些东西都放在数据库里。你在主机面板里备份数据库,拿到的是一个导出文件,常见后缀是.sql、.gz或.bz2。这份导出文件可以跟文件备份存在一起,但还原时它要再导入回MySQL或MariaDB,不是拷贝回去就能用的东西。
文件包含核心、主题、插件、uploads、wp-config.php、.htaccess
官方对WordPress文件的定义是站根目录里的那些内容:核心程序、主题、插件、uploads上传目录、wp-config.php、.htaccess。打包的时候一个都不能少。uploads里放的是你上传的图片和附件,这个目录漏了,前台文章里的图会全裂。.htaccess是隐藏文件,面板默认可能不显示,打包前先确认能看到隐藏文件。
两个地址字段管什么:WordPress Address (URL)与Site Address (URL)
单站点后台的Settings -> General页有两个字段。WordPress Address (URL)是核心文件所在的地址,Site Address (URL)是访客在浏览器里输入、用来打开你站点的地址。两个设置都要带上https://,结尾不要加斜杠。
只适用单站点:多站点要手动改数据库
官方那段改地址的说明只针对单站点安装。跑多站点的,官方要求手动改数据库:网络用的是共享用户表,每个子站又有自己前缀的站点表,只动一个地方不够。
为什么必须先备份数据库再备份文件
官方备份页写的是先备份数据库,再备份WordPress文件。备份时先数据库后文件,还原时先文件后数据库,这两句是成对的。数据库不在目录里,两样东西没法一起打包,只能分开走两遍,官方把这两遍的先后定死了。
两样都拿到手,才叫一次完整备份。少一样,还原出来就是一个残缺的站。
备份集要放三处:主机、云盘、本地各一份
官方要求把备份放在不同位置、不同介质上:主机上留一份,云盘(Google Drive、Dropbox这类)放一份,再下载一份到本地电脑。主机出问题、云盘欠费、本地硬盘坏掉,三个里坏一个还有两个。
自动备份之外偶尔手动做一次
主机自带的自动备份可以用,但官方强烈建议偶尔手动做一次。目的不是多一份备份,是验证自动流程真的在跑。真出事那天才发现自动备份几个月前就停了,只能拿手动那份顶上。
升级前和搬到新位置前一定要备份
官方要求定期备份数据库,升级前和搬到新位置前一定要备份。搬家前的这一份,同时也是回滚的底:新服务器上跑不起来,旧站还在原处,把解析切回去就行。
换服务器分几步做:从导出数据库到新站能打开
搬站这一套流程,差别只在库的大小和插件装了多少。下面按顺序走,每一步都给了回查点。
第1步 在phpMyAdmin导出数据库
进主机面板,打开phpMyAdmin,选中WordPress用的那个数据库。数据库不在WordPress目录里,这一步只能单独做。
- 点顶部的Export。
- 选Custom,表全选。
- Output一栏勾Save output to a file,Compression选None,库特别大再考虑压缩。
- Format选SQL。
- 要覆盖一个已有数据库,勾Add DROP TABLE;怕还原时提示表已存在,勾IF NOT EXISTS。
导出完先看文件大小。0字节说明没导出来,回上一步看表是不是全选。用文本编辑器打开扫一眼,里面应该能看到建表语句和插入数据的语句。
第2步 打包WordPress文件
把站根目录打成一个压缩包,核心、主题、插件、uploads、wp-config.php、.htaccess一起打。回查两件事:uploads有没有漏,隐藏文件有没有显示出来。这两处漏了,站能打开,图全裂或者内页全404。
第3步 在新服务器建库建用户,先传文件再导数据库
新服务器上建一个数据库和一个数据库用户,把权限给到这个库。文件用FTP或面板的文件管理传上去,压缩包传到站根目录再解压。还原顺序按官方:先恢复文件,再导入数据库。
新服务器是VPS的,买和配的过程看搬瓦工VPS购买配置;要在上面装面板的,宝塔面板安装教程里有完整流程。
环境版本照官方下载页的推荐来:PHP 8.3或更高,MySQL 8.0或MariaDB 10.11或更高。
回查解压后的目录层级。站点文件要直接落在站根,别多套一层文件夹,多套一层会出现首页404、后台进不去。
第4步 核对wp-config.php的四项数据库信息
打开wp-config.php,看DB_NAME、DB_USER、DB_PASSWORD、DB_HOST四项是不是新服务器的数据库信息。只有搬了库、改了库名或改了数据库账号,才需要动这几项,账号密码没变就不改。保存后打开前台,报数据库连接错误就回头核这四项。
第5步 改站点地址,官方给了四种方法
四种方法任选一种,不要一起上。动手之前先把数据库备份一份。
- 在wp-config.php里加WP_HOME和WP_SITEURL两行,example.com换成站点的正确地址。官方说这不是最好的修法,等于把值写死在站里,用了之后General页就改不了这两个地址。
- 通过FTP取当前主题的functions.php,在文件开头那行PHP标签后面加update_option,一行把siteurl改成新地址,一行改home,传回去,登录页或后台页多刷几次,站点应该回来。站点恢复后这段代码必须删掉。
- RELOCATE:在wp-config.php的define语句之后加define('RELOCATE',true);,保存后用浏览器手动打开新服务器上的wp-login.php登录。它只把Site URL更新成你访问登录页用的那个路径,让后台在新地址跑起来,其他部分不会自动修。用完必须删掉这一行。
- 直接改数据库:先把数据库备份一份存到站外,进phpMyAdmin选WordPress的库,找wp_options表,找option_name为siteurl的那行,点编辑,把option_value改成新地址,点Go保存;再找home,同样改完保存。
回查:进后台Settings -> General,两个地址是不是新的https地址,结尾有没有多出斜杠。
第6步 收尾:缓存、固定链接、旧域名残留
- 清所有缓存:主机缓存、插件缓存、CDN缓存。
- 打开Settings > Permalinks,不改任何设置,直接点保存一次。
- 改过表前缀的,usermeta表里的前缀一起改,新站才能识别老站的用户权限。
- 主题模板文件里手写的旧域名逐个替换,bloginfo()这类函数生成的地址不用动。
站前面挂了CDN的,切域名之前先看Cloudflare CDN配置。
用迁移插件的话
All-in-One WP Migration的做法是三步:源站和目标站都装插件,源站Export出一个.wpress文件,目标站用Import导入。它会自动迁移整站,包括更新所有URL引用、安全处理序列化数据。Duplicator把网站文件和数据库打包成一个backup文件,下载后在新位置重装,不需要先装WordPress。官方在迁移页里说,搬家一般应该用工具,而不是手动去改数据库。
插件跑完站变慢,清完缓存还是慢的,看WordPress速度优化。
迁移后打不开、跳回旧域名,按这个顺序查
官方说改地址后站点打不开,通常发生在改了一个或两个地址设置之后,而且改错之后页面上找不到能改回来的入口。所以排查只能从数据库往上走,一层一层排除。
第一步看wp_options的siteurl和home是不是新地址
进phpMyAdmin,打开WordPress的库,找到wp_options表,找option_name为siteurl和home的两行,看option_value里是不是新域名。还写着旧域名,就说明地址这一步没做完。改之前先备份数据库,SQL改动是永久的,改错了回不去。
第二步看wp-config.php的数据库账号四项
四个值跟新服务器后台里显示的库名、用户名、密码、主机地址一个字一个字对。搬库时最容易漏的是DB_HOST,照面板显示填,别凭记忆写localhost。
第三步看文件归属和权限
wp-config.php初始是644权限,官方说这样放着是隐患。suexec的共享主机配置下,这个文件应该是440或400,防止服务器上其他用户读到里面的数据库密码。任何目录都不该给777,包括uploads。共享主机上,文件也不该归web服务器进程自己所有。权限设错会让站点直接下线,用chmod改的时候慢一点,一次改一个地方。
第四步 要PHP、数据库、服务器信息时查Finding Server Info
装环境或排错时要知道PHP版本、数据库版本、操作系统、服务器软件,官方对应的是Finding Server Info那一页。这些信息搬家前记一遍,新服务器装完再对一遍,版本对不上就先别往下走。
只修一个坏站不要套搬家那套说明
官方明确写,如果只是想修一个坏掉的站,不要用搬家那套补充说明。两条路的做法不同,分开走。
做WooCommerce的:核对支付网关、webhook和新域名
迁移WooCommerce店之后,要立刻做三件事:核对支付网关的API key配置对不对,把webhook URL更新到新域名,跑一笔小额真实交易确认结账全流程能用。DNS生效后在旧服务器开维护模式,防止过渡期出现拆单。
地址填的是https、页面还是打不开,浏览器又提示证书问题,去看HTTPS打不开页面。
迁移前后要盯的几个数字和限制
表里的数字来自WordPress官方备份页、迁移页和两个迁移插件的官方页面。
| 项目 | 数字 / 限制 | 出处口径 |
|---|---|---|
| 备份频率 | 小站每周一次,帖子多的高活跃站每天一次 | WordPress官方备份页 |
| 保留份数 | 至少3到5份近期备份,放在不同位置 | WordPress官方备份页 |
| DNS TTL 与旧主机 | 迁移前至少48小时把TTL降到300秒;旧主机保留7到14天做回滚 | All-in-One WP Migration官方页 |
| 免费还原的上传上限 | 由主机决定,Import页会显示这个数字 | All-in-One WP Migration官方FAQ |
| 插件环境门槛 | Duplicator要PHP 7.4或更高、WordPress 6.2或更高,免费版不支持多站点;All-in-One兼容PHP 5.3到8.4,大型多站点建议512MB PHP内存 | 两个插件的官方页 |
最容易被忽略的是上传上限。免费还原能不能成,取决于主机给的这个数,插件方无权决定。备份文件比这个数大,先在服务器上把上限调上去,或者换一种还原方式。要动服务器配置的,先看主机文档或找客服确认。
DNS那两项是提前量,TTL提前降、旧主机多留几天,都是给回滚留时间。插件版本门槛在装之前对一遍,PHP版本不够,插件装上了也跑不起来。
这几个误区最容易把站搬坏
下面六条都是官方写明的问题,一条一句结论,跟着一句依据。要是这次搬家同时还换了域名,先按网站域名更换把域名这一步做干净,再动文件。
以为备份文件就等于备份了数据库
不对。官方备份页写了,典型WordPress设置下,备份文件不等于备份数据库,因为数据库不在你下载的那个目录里。
把RELOCATE常量留在wp-config.php里
这是安全隐患。官方说留在里面不安全,某些配置下攻击者能借它把站点URL改成任意地址,用完必须删掉那一行。
用functions.php改完地址不删代码
站点恢复之后那段代码就是多余的。官方要求站点起来以后把它从functions.php删掉,不能留在文件里。
给目录开777图省事
官方明确写任何目录都不该给777,包括上传目录。权限设错会让站点下线,改权限要一个一个来。
在wp-config.php里写死两个地址,之后还想在后台改
改不了。官方说这种写法是把值写死在站里,用了之后General设置页就不能再编辑这两个地址。
以为SQL改动可以随手试
SQL改动是永久的。官方提醒改之前先备份数据库,改错了只能靠备份回滚。
用AI帮哪几步、哪几步必须自己动手
搬家这件事里,AI帮得上的是整理和对照,帮不上的是点鼠标。下面几步可以交给它,后面三个动作只能自己做。
AI能帮的几步
- 迁移前整理检查清单:把WordPress版本、PHP版本、数据库类型、主题插件清单、wp-config.php里的数据库账号项交给它,让它按官方备份顺序(先数据库后文件)排成一份待办。
- 迁移后打不开时给下一步:把现象(前台白屏、后台进不去、跳回旧域名)和已经做过的步骤贴给它,让它按官方排查顺序给下一步,先wp_options的siteurl和home,再wp-config.php的数据库账号,再文件权限。
- 排时间表:让它把官方给的备份频率、保留份数、DNS TTL和旧主机保留天数整理成一张迁移前后时间表。
- 起草验收清单:首页、后台、固定链接、上传、WooCommerce结账,一项一项列出来。
必须人做的三个动作
- 在phpMyAdmin里点开wp_options表,找到option_name为siteurl和home的两行,在option_value里填上新地址,点Go保存。
- 打开wp-config.php,核对DB_NAME、DB_USER、DB_PASSWORD、DB_HOST四项跟新服务器的数据库一致,改完保存。
- 迁移完成后打开新站首页和后台各一次,看是否正常加载、地址栏是不是新的https地址,据此决定回滚还是收尾。
三条能直接照抄的提示词
这三条是本文给的示例,不是官方模板,按自己站的地址和字段名改一下再用。
「我在把WordPress单站点从旧服务器搬到新服务器,已经按官方顺序先导出数据库再打包文件。请给我一份迁移后的排查清单,按这个顺序:wp_options的siteurl和home、wp-config.php的数据库账号、文件权限。每一步写清楚在哪个后台点什么、看到什么结果算通过。」
「我的WordPress迁移后前台打不开、后台也进不去,我改过Settings里的两个地址。请列出官方文档里四种改回地址的方法,并说明每种方法做完之后要删掉什么。」
「请把这份WordPress迁移时间表补全:迁移前、迁移当天、迁移后各要做什么。时间点只用WordPress官方和插件官方页面里给出的数字,不要自己加。」
迁移前的检查清单和迁移后的排查单,可以让猎者出海的AI Agent的运营模块按周拉数据时一起列出来,你负责拍板和验收。
常见问题
只把WordPress目录下载下来,算备份完吗
不算。数据库不在这个目录里,目录里只有文件。拿这份东西去还原,文章、用户、设置都是空的。
迁移后首页能打开,文章页404,先改哪里
先去Settings > Permalinks保存一次,再清缓存。还不行就看.htaccess有没有跟着文件一起搬过去。
换服务器要重新装一遍WordPress吗
手动搬不用,把文件传上去、库导进去就行。用Duplicator也是在新位置直接重装备份文件,不需要先装WordPress。
迁移后图片不显示是什么原因
查两个地方:uploads目录有没有漏搬,主题模板里有没有手写死的旧域名。前者补文件,后者逐个替换。
改了数据库账号,站点报数据库连接错误,先查哪一处
先看wp-config.php里那四项跟新服务器后台显示的库信息是否一致,重点是DB_HOST。改完保存,刷新前台再看。
搬家这件事本身不复杂,复杂的是出问题时不知道从哪一层查。文件、数据库、两个地址字段,一层一层排下去,多数问题第一步就能定位。搬完之后每周的流量和收录变化,让猎者出海的AI Agent的运营模块跟着那张数据单一起看,掉流量时能早点发现是哪一步没做干净。

发表评论