WordPress 迁移到新服务器:插件方案与手动方案对比

· wordpress · 阅读 3
摘要

先说结论:迁移不是「把文件复制过去」这么简单,真正容易出事的是数据库里的旧域名、序列化数据、文件权限三项。插件方案适合新手,手动方案适合大站和想搞清楚原理的人。下面两种都给你,附各自的坑。 一、迁移前必做:清点与备份 记录当前面板、PHP

先说结论:迁移不是「把文件复制过去」这么简单,真正容易出事的是数据库里的旧域名、序列化数据、文件权限三项。插件方案适合新手,手动方案适合大站和想搞清楚原理的人。下面两种都给你,附各自的坑。

一、迁移前必做:清点与备份

  • 记录当前面板、PHP 版本、MySQL 版本(新服务器不能低)。
  • 导出完整数据库(用 phpMyAdmin 或命令行 mysqldump)。
  • 打包整个站点目录(含 wp-content)。
  • 把两份备份存到本地或对象存储,别只放在旧服务器。

不要在这一步图快:90% 的迁移事故,都是「备份不全就先停站」。

二、方案 A:插件迁移(新手友好)

常用插件如 All-in-One WP Migration、Duplicator,流程大致一致:

  1. 旧站装插件 → 导出成一个包文件。
  2. 新站装好纯净 WordPress 与同一插件 → 导入包。
  3. 导入过程会自动替换域名、重建数据库。
  4. 完成后改 wp-config.php 里的数据库信息(若插件没覆盖)。

优点:自动处理序列化数据,域名替换不会出错。

缺点(务必知道):

  • 包体积有上限,大站(含大量图片)导入会失败,需要改 PHP 上传与执行时间限制。
  • 部分免费版本不能直接导入大文件,要绕路。
  • 导入后插件本身要删掉,否则占资源且有安全隐患。

三、方案 B:手动迁移(推荐,掌控感强)

1. 新服务器准备环境

装好 Nginx / Apache + PHP + MySQL,建库(字符集 utf8mb4),建好站点目录与数据库用户。

2. 上传文件

把旧站目录打包上传,解压到新站根目录。用 scp 或 rsync 比面板上传快得多,尤其图片多的时候:

rsync -avz --progress /旧站目录/ user@新服务器:/新站目录/

3. 导入数据库

mysql -u 用户名 -p 库名 < backup.sql

导入完检查表数量对不对。少了表通常是 SQL 文件被截断或单条语句太大。

4. 改 wp-config.php

define('DB_NAME', '新库名');
define('DB_USER', '新用户名');
define('DB_PASSWORD', '新密码');
define('DB_HOST', 'localhost');

5. 替换数据库里的旧域名(最容易出事的一步)

直接 SQL 替换有个致命问题:WordPress 的选项和部分插件字段是序列化存储的,字符串长度写在里面,直接替换会让长度对不上,整条数据读不出来 → 页面白屏或设置全部丢失。

正确做法:

  • 用 WP-CLI:wp search-replace 'old.com' 'new.com' --all-tables --precise(--precise 会处理序列化)。
  • 或用专业替换工具(如 Better Search Replace),它也会处理序列化。
  • 不要用 phpMyAdmin 的「查找替换」直接干。

6. 处理固定链接与伪静态

Nginx 加规则(同站内文章已有详述):

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

然后到后台「设置 → 固定链接」直接点保存(不用改内容),让 WordPress 重写规则。

7. 文件权限

find /站点目录 -type d -exec chmod 755 {} \;
find /站点目录 -type f -exec chmod 644 {} \;
chmod 600 /站点目录/wp-config.php

漏了这步,会出现「能进后台但上传不了图片」「装插件要 FTP 密码」。

四、两种方案对比

维度插件方案手动方案
上手难度低中
大站支持差(体积受限)好
域名替换自动需 WP-CLI 或工具
耗时(1G 站)30 分钟20–40 分钟
残留清理要手动删插件无残留
可控性低高

建议:小于 500MB 的站用插件方案,省事;超过 1GB 或图片很多的站用手动方案,稳。

五、迁移后的检查清单

  1. 首页、文章页、分类页、搜索页各开一个,看是否 404。
  2. 登录后台,进「设置 → 常规」,确认两个 URL 都是新域名。
  3. 上传一张图片,确认能成功且能显示。
  4. 打开一篇文章,F12 看有没有混合内容(http 资源)。
  5. 全站搜索旧域名是否还有残留:grep -r 'old.com' /站点目录。
  6. 更新站点地图并提交搜索资源平台。
  7. 观察 24–48 小时,旧站先别急着关,做好 301 跳转。

最后一句:迁移期间不要顺手升级 WordPress 或换主题。两件事分开做,出问题才知道是谁的锅。