信科网络 · 11 年只做 WordPress | 建站 / 主题 / 插件 / 商城 / 迁移 / 托管 | 累计服务 3000+ 企业 | 源码全交付
服务热线:13280692153 邮箱:web@wordpressx.com
工作日 08:30-18:0013280692153 免费诊断
首页/WordPress 教程/WordPress 网站搬家:换服务器与换空间的完整步骤
BLOG

WordPress 网站搬家:换服务器与换空间的完整步骤

分类 发布 2026-10-23

搬家之后出问题,绝大多数不是文件没传全,而是四件事里漏了一件:wp-config.php 里的数据库账号、wp_options 里的 siteurl、伪静态规则、目录属主。这四样任意一个不对,表现都差不多——500 或者白屏,看不出是哪一个。这篇按操作顺序走,每一步给出验证方法,最后专门讲 500 和白屏怎么定位。

先分清是换服务器还是换空间

口语里都叫「搬家」,实际差别不小,选错方法会白折腾。

场景 变的东西 要动的地方
换服务器,域名不变 IP、PHP 版本、MySQL 版本 文件 + 数据库 + wp-config,不改 siteurl
换空间,域名也不变 仅主机环境,可能从面板机换到 VPS 同上,注意 PHP 扩展和上传限制
换服务器 + 换域名 IP 和域名都变 搬家全部步骤 + 换域名的批量替换
同机换目录 路径变了,域名不变 只改文件位置和站点根目录指向

只有第三种需要做数据库里的域名替换,前两种不要动 siteurl。不少人搬完顺手在数据库里把域名替换了一遍,本来没变的东西被改坏,序列化数据一崩,主题设置全丢。换域名的完整流程单独写在 WordPress 迁移搬家 相关流程里,这里只讲域名不变的标准搬家。

第一步:老服务器上打包文件和导出数据库

先在老站关掉缓存插件,把缓存目录清掉。带着缓存文件搬家,新服务器上第一件事就是看到一堆过期页面。

打包用 tar,排除缓存和日志,体积能小一半:

cd /www/wwwroot
tar -czf site.tar.gz oldsite 
  --exclude='wp-content/cache' 
  --exclude='wp-content/upgrade' 
  --exclude='*.log'

导数据库,比 phpMyAdmin 导出稳,不会因为超时截断:

mysqldump -u root -p --default-character-set=utf8mb4 
  --single-transaction --no-tablespaces olddb > olddb.sql

三个参数的作用:--single-transaction 保证 InnoDB 表导出一致性快照,不用锁表;--no-tablespaces 避免 MySQL 8 上的 PROCESS 权限报错;--default-character-set=utf8mb4 防止中文变成问号。最后这条最容易被忽略,导完不检查,新站全文都是 ???,只能重来。

导出后看一眼文件尾部,确认最后一行是 -- Dump completed。没有这行说明导出中断了。备份的完整规范见 WordPress 备份与恢复。

第二步:新服务器建库、建用户、导入

CREATE DATABASE newdb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'newuser'@'localhost' IDENTIFIED BY '强密码';
GRANT ALL PRIVILEGES ON newdb.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

导入:

mysql -u newuser -p newdb < olddb.sql

两个细节:字符集必须和原来一致,原来用 utf8mb4 的不要建成 utf8(utf8 在 MySQL 里只有三字节,存不了 emoji 和部分生僻字);用户只授权到这一个库,不要图省事给 ALL ON *.*。

导入完成后核对行数,别信「没报错就是成功」:

SELECT COUNT(*) FROM wp_posts;
SELECT COUNT(*) FROM wp_options;

和老库的数字对得上再往下走。对不上就重新导,硬着头皮继续只会在后面某个页面莫名报错。

第三步:传文件、改 wp-config.php

上传解开后,先改 wp-config.php 这四项,改完再谈能不能打开:

define('DB_NAME', 'newdb');
define('DB_USER', 'newuser');
define('DB_PASSWORD', '强密码');
define('DB_HOST', 'localhost');

DB_HOST 是最常出错的一项。老主机常写 localhost,新主机如果是独立数据库服务,要写成内网 IP 或 127.0.0.1:3306;云数据库则是一串内网地址。写错的表现是「建立数据库连接时出错」,页面直接挂掉,连 WordPress 都没启动。

接着改权限。这一步是 500 的第一大来源:

chown -R www:www /www/wwwroot/newsite
find /www/wwwroot/newsite -type d -exec chmod 755 {} ;
find /www/wwwroot/newsite -type f -exec chmod 644 {} ;
chmod 600 /www/wwwroot/newsite/wp-config.php

属主写 www 还是 nginx 还是 apache,取决于新服务器的 Web 用户,用 ps aux | grep nginx 看一眼进程属主即可。目录 777 是错误做法,等于给上传目录开了写权限,安全上直接失守。

第四步:域名没变就不用改 siteurl

如果域名不变,wp_options 里的 siteurl 和 home 保持原样,不要碰。如果连域名一起换了,先按换域名那篇做批量替换,再继续往下。

有一种情况需要改:老站是 http,新服务器直接配了 https。这时要在 wp-config.php 里加一行,强制后台也走 https,否则会出现「后台改完设置跳回 http」的循环登录:

define('FORCE_SSL_ADMIN', true);

同时确认 siteurl 和 home 都写成了 https 开头,证书本身也要在新服务器上装好。

第五步:伪静态规则必须重配

这一项搬家后必然要重做,因为 .htaccess 或 nginx.conf 是服务器级的,不跟着文件走。没配的表现很统一:首页正常,点任何内页都是 404。

Apache 环境,确认站点根目录有 .htaccess,且 AllowOverride 是 All:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Nginx 环境,在 server 块里加:

location / {
    try_files $uri $uri/ /index.php?$args;
}

配完进 设置 → 固定链接,什么都不改直接点「保存更改」。这一步会重写 rewrite 规则,很多「规则明明对但不生效」的情况,点一次就好了。固定链接本身的结构说明见 WordPress 固定链接设置。

第六步:DNS 切换与 TTL

前面的步骤都可以在新服务器上用 IP 或临时域名验证完,最后才动 DNS。顺序反了,用户会在你还没准备好的时候访问到新站。

  1. 提前 24 小时把旧解析的 TTL 从 3600 改成 300(5 分钟)。TTL 是「缓存多久」,改小了切换才快。
  2. 在新服务器上绑定域名,用 hosts 文件本地测一遍:Windows 改 C:WindowsSystem32driversetchosts,加一行 新IP 你的域名,浏览器访问确认整站正常。
  3. 确认无误后再改 DNS 的 A 记录指向新 IP。不要删旧记录再加新的,直接改值。
  4. 等生效。用 nslookup 你的域名 8.8.8.8 查各地解析,或在线多地 ping 工具。
  5. 老服务器保留至少一周,别急着退。发现漏文件还能回去取。

切完不要马上把老服务器关掉,这一步每年都有人吃亏:新站跑起来三天,才发现某个插件的数据目录忘了传,而老服务器已经释放,只能从备份里翻。

搬家后 500 与白屏:按这个顺序查

两者表现不同,原因也不同。500 是 PHP 崩了,白屏多半是 PHP 跑完但输出为空。先看日志,别猜。

先打开错误显示

在 wp-config.php 里临时加:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

错误会写进 wp-content/debug.log,比页面上那行「此站点遇到技术问题」有用得多。同时看 PHP 错误日志和 nginx 的 error.log,路径一般在 /www/wwwlogs/ 或 /var/log/nginx/。

按概率从高到低排查

现象 最可能的原因 处理
全部页面 500 目录属主不对,PHP 无权读取 chown 改成 Web 用户,目录 755 文件 644
全部页面 500,日志报 parse error PHP 版本过高,老主题用了已移除的函数 把 PHP 降到 7.4 验证,或升级主题
后台白屏,前台正常 内存不足或某个插件致命错误 WP_DEBUG 看日志,重命名 plugins 目录逐个试
首页正常,内页 404 伪静态规则缺失 补 try_files 或 .htaccess,重存固定链接
整站白屏无日志 文件没传全,缺 wp-load.php 之类 核对文件数量,重新上传核心文件
提示建立数据库连接错误 DB_HOST 或账号密码错 用命令行 mysql -h 测试连通性

白屏还有一种情况:文件传了一半。FTP 断线重传时容易出现零字节的 php 文件,PHP 解析空文件不会报错,但类没定义,页面就白。用 find . -size 0 -name "*.php" 扫一遍,命中就是证据。白屏的详细排查见 WordPress 白屏排查,数据库层面的报错见 WordPress 数据库报错。

搬完必须跑一遍的检查

  • 前台首页、文章页、分类页、搜索页各点一个,确认都是 200。
  • 后台登录一次,进 设置 → 常规 保存一下,确认没有权限报错。
  • 上传一张图片,确认 uploads 目录可写、缩略图能生成。
  • 发一条测试评论,确认邮件通知能发出(新服务器常缺 sendmail,评论发不出通知)。
  • 用 curl -I https://你的域名 看返回头和证书有效期。
  • 确认 WP-Cron 正常:访问 wp-cron.php 返回 200,不然定时发布和备份都会停。

搬家这件事,稳的做法永远是「新站先跑通,再切 DNS」,而不是「先切了再修」。用 hosts 文件验证这一步花十分钟,能省掉后面半夜回滚的风险。如果站点同时涉及版本升级,把顺序定成先搬家、观察两天、再升级,两件事混在一起出问题时无法判断是谁引起的。

INDUSTRIAL BELT

扎根中国制造产业带
懂工厂,才懂出海

从胶东半岛到珠三角,从长三角到中原腹地,每一片产业集群都有自己的出口节奏与买家画像。信科网络长期扎根产业一线,把工厂的产品语言翻译成海外采购商听得懂的搜索语言,让每一分投入都对着真实的询盘去。

wuxi

巫溪外贸网站建设

巫溪县地处大巴山东段南麓的渝、陕、鄂三省(市)结合部分,东接湖北省神农架林区、竹溪县,南临重庆市奉节、巫山两县,西与重庆开县、云阳接壤,北连重庆城口县和陕西省镇坪县。  

hongsibao

红寺堡外贸网站建设

宁夏吴忠市红寺堡区前身为红寺堡开发区,是宁夏回族自治区吴忠市第二个市辖区。它是国家大型水利枢纽工程——宁夏扶贫扬黄灌溉工程(“1236”工程)的主战场,是全国最大的生态扶贫移民集中区,200…

yongning

永宁外贸建站

永宁县地处宁夏平原中部,东临黄河,西倚贺兰山,是宁夏回族自治区首府银川市的郊县。全县国土面积1020平方公里,辖五镇一乡一个街道办事处,总人口20.4万人,有汉、回、满等13个民族,其中回…

litong

利通外贸建站

利通区隶属于宁夏自治区吴忠市,地处中国西北内陆,位于宁夏平原中部,距首府银川市59千米,是宁夏经济发展的核心区之一,也是吴忠市政治、经济、文化中心。辖区总面积1384平方千米,辖8镇4乡…

zhongxian

忠县WordPress建站

忠县隶属于重庆市,位于重庆市中部,辖28个乡镇。忠县历史悠久,资源丰富,盛产柑橘。综合多种产业,近年来正快步发展中  

rongcheng

容城WordPress建站

河北省容城县,历史悠久,距今已有2000年的历史,全县总面积314平方公里,总人口25万人。地理位置得天独厚。位于河北省中部,京、津、保腹地,距首都北京和天津直辖市均为120公里,两个小时的…

haiyuan

海原Shopify建站

位于中国宁夏回族自治区中南部。1991年底人口31.15万。回族为主,有汉、满、蒙古、东乡等民族。西汉属安定郡。清同治十三年(1874)设海城县。民国三年(1914)改海原县。地形复杂,多山地。年…

liangping

梁平Shopify建站

梁平县,原名梁山县,位于重庆市东北部,东邻万州区,西连四川省大竹县,南靠忠县、垫江县,北接四川省达州市达县、开江县。”。  

jiangjin

江津外贸推广

重庆市江津区,是一个历史文化悠久的城市,以地处长江要津而得名。江津位于重庆西南长江之滨,距渝中区公路里程50公里;铁路里程65公里;水路里程72公里。江津城区气候特征与重庆相近,但综合…

tongliang

铜梁外贸推广

重庆市铜梁县位于四川盆地东南部、重庆西北部,唐长安四年(公元704年)建县,因境内“小铜梁山”而得名,是国际主义战士邱少云的故乡和蜚声中外的铜梁龙的发祥地。全县幅员面积1334平方公里,辖…

yuanzhou

原州Google SEO

原州区,隶属于宁夏回族自治区固原市,地处宁夏南部,六盘山东北麓,黄土高原中西部,东邻彭阳县,南接泾源县,西连西吉县,北靠海原县、同心县,东北、西南分别与甘肃环县、隆德县毗壤,是固…

jinfeng

金凤Google SEO

金凤区于2002年11月1日成立,是宁夏回族自治区首府银川市的市辖区之一,位于市区中部,东到唐徕渠,西到包兰铁路,南接永宁县,北临贺兰县,辖良田、丰登2个镇,上海西路、北京中路、长城中路…

yanchi

盐池GEO优化

山西省运城市即古河东盐池,亦称解池。地处运城盆地之南,中条山北麓,自东北向西南延伸,长约30公里,宽3——5公里,面积130平方公里,是由鸭子池、盐池、硝池等几个部分组成,湖面海拔324.5米…

tongnan

潼南GEO优化

潼南县位于重庆市西北部最前沿。是川渝握手区腹地东西南北交通自然便捷走向的交汇点及区域几何中心,是成渝经济区的腹地中心,是重庆西部凸入川中腹地最远、毗邻四川县市最多的对外开放最前沿…

shenzhou

深州谷歌SEM

深州市旧称深州,上古为冀州大陆之域。春秋时为晋地。战国属赵。秦属钜鹿郡。汉为下博县。隋开皇十六年(公元五九六年),于安平置深州,以城西故深池得名。尔后迭经废置,州城屡迁。唐徙州治…

xianxian

献县谷歌SEM

献县历史悠久,夏商时期属冀州,春秋时属燕国,战国时属燕、赵、秦。早在春秋战国时期。境内就形成了具有一定影响力的城市——乐成。汉高祖六年(公元前201年)置河间郡,汉文帝二年…

yinchuan

银川Facebook广告

银川市地处祖国西北边陲,是宁夏回族自治区首府,也是全国历史文化名城之一。银川市是一个多民族聚居区,共有汉、回、满、蒙、朝鲜等26个民族。银川市位于东经105°51’,北纬38°25’。东临黄河,…

nanchuan

南川Facebook广告

南川地处四川盆地东南边缘与云贵高原过渡地带,位于重庆市南部,东南与贵州省道真、正安、桐梓县接壤,东北与武隆县为邻,北接涪陵区,西连巴南区、綦江县、万盛区。总面积2602平方千米。总人…

fuling

涪陵Yandex推广

重庆市涪陵区,邑枕长、乌两江,素为乌江流域物资集散地,有渝东南门户之称,是闻名遐迩的中国“榨菜之乡”。全区幅员面积2946平方公里,辖1个经济技术开发区、1个私营经济示范区和44个乡镇、街…

shapotou

沙坡头Yandex推广

沙坡头:国家AAAAA级旅游景区,国家级沙漠生态自然保护区,全球环保500佳单位,全民健身二十个著名景观,科技进步特别奖。沙坡头位于宁夏回族自治区中卫市城区西部腾格里沙漠的东南缘。东起二…

qianjiang

黔江TikTok推广

重庆市黔江区位于重庆市的东南边缘,地处武陵山腹地,东临湖北省的咸丰县,西界彭水县,南连酉阳县,北接湖北利川市,是渝、鄂、湘、黔四省市的结合部,素有”渝鄂咽喉”之称。另外…

为什么一定要选懂产业带的出海服务商?建材丝网的欧洲建筑商看资质与交期,工业橡塑的中东工程商问耐温与工况,毛皮服饰的俄罗斯分销商算的是季节与毛利。买家不同,决策逻辑就不同;信科网络把这些差异拆进网站结构、关键词地图和投放策略里,用他们习惯的方式出现在他们搜索的地方。