下面我将为你提供一个完整、详细、适用于绝大多数情况的 WordPress 迁移指南,这个指南分为两种主要场景:

wordpress 网站迁移
(图片来源网络,侵删)
  1. 迁移到新主机,并保持原域名不变 (最常见)
  2. 迁移到新主机,并更改域名 (稍微复杂)

核心迁移原理

无论哪种情况,WordPress 迁移的核心都包含三个部分:

  1. 文件:网站的所有程序文件、主题、插件、上传的图片等。
  2. 数据库:网站的所有内容,包括文章、页面、分类、标签、用户评论、设置等。
  3. 配置信息:数据库连接信息,存储在 wp-config.php 文件中。

迁移到新主机,域名不变

这种情况最简单,因为不需要修改数据库中的域名。

第一步:在原主机上备份

  1. 备份文件

    • 通过 FTP (如 FileZilla) 或主机的文件管理器,连接到你的网站。
    • 将整个 WordPress 网站根目录(通常是 public_htmlwww 文件夹)下载到你的电脑上,确保所有文件(包括 .htaccess 文件)都被完整下载。
  2. 备份数据库

    wordpress 网站迁移
    (图片来源网络,侵删)
    • 登录你的原主机控制面板(如 cPanel, Plesk)。
    • 找到“数据库”或“phpMyAdmin”工具。
    • 在 phpMyAdmin 中,选择你的 WordPress 数据库。
    • 点击“导出”选项卡。
    • 选择“快速”或“自定义” - “快速”通常就足够了。
    • 格式选择“SQL”,然后点击“执行”。
    • 浏览器会下载一个 .sql 文件,这就是你的数据库备份,保存好它。

第二步:在新主机上配置

  1. 创建新账户和数据库

    • 登录你的新主机控制面板。
    • 创建一个新的数据库、数据库用户,并为该用户授予对新数据库的所有权限,记下以下信息:
      • 数据库名称
      • 数据库用户名
      • 数据库密码
      • 数据库主机 (通常是 localhost,但请以主机商提供的为准)
  2. 上传文件

    • 通过 FTP 或新主机的文件管理器,连接到新主机的网站根目录。
    • 将你在第一步下载的 WordPress 文件夹内容全部上传到这个新根目录,如果新主机的根目录里已经有默认文件(如 index.html),请将其删除或覆盖。

第三步:导入数据库并修改配置

  1. 修改 wp-config.php 文件

    • 在新主机的文件中找到 wp-config.php 文件。
    • 用文本编辑器(如 Notepad++, VS Code)打开它。
    • 修改以下几行,使其与你新创建的数据库信息一致:
      define('DB_NAME', '你的新数据库名');
      define('DB_USER', '你的新数据库用户名');
      define('DB_PASSWORD', '你的新数据库密码');
      define('DB_HOST', 'localhost'); // 通常为 localhost,如果不是,请用主机商提供的
    • 保存并上传这个修改后的 wp-config.php 文件回服务器。
  2. 导入数据库

    wordpress 网站迁移
    (图片来源网络,侵删)
    • 登录新主机的 phpMyAdmin。
    • 选择你刚才创建的那个新数据库
    • 点击“导入”选项卡。
    • 选择你第一步下载的 .sql 备份文件。
    • 点击“执行”。

第四步:完成迁移并检查

  1. 清空缓存:如果你使用了任何缓存插件(如 WP Super Cache, W3 Total Cache),在新网站上先禁用它或清空所有缓存。
  2. 访问网站:在浏览器中访问你的网站,如果一切顺利,你应该能看到和原来一模一样的网站。
  3. 检查功能
    • 打开几篇文章,确保图片和链接正常。
    • 登录后台,检查主题和插件是否正常工作。
    • 检查网站设置(如“设置”->“常规”)中的 URL 是否正确(因为域名没变,所以这里应该没问题)。

完成! 网站已成功迁移到新主机。


迁移到新主机,并更改域名

这种情况比第一种多了一个关键步骤:搜索并替换数据库中的旧域名

第一步和第二步:与场景一相同

执行场景一中的第一步(备份)第二步(新主机配置),你的网站已经在新主机上,但使用的还是旧域名。

第三步:搜索并替换域名

这是最关键的一步,你不能简单地手动替换,因为域名可能存储在序列化的数据中,直接替换会导致数据损坏,强烈推荐使用专门的插件。

  1. 安装搜索替换插件

    • 通过 FTP 或文件管理器,在新网站的 wp-content/plugins 文件夹里创建一个名为 search-replace 的文件夹。
    • 下载 Better Search Replace 插件,将其解压,然后把里面的文件上传到刚刚创建的 search-replace 文件夹中。
    • 或者,你也可以通过 WordPress 后台的“插件”->“添加插件”,搜索“Better Search Replace”或“Velvet Blues Update URLs”进行安装。
  2. 执行搜索替换

    • 登录你的新网站后台。
    • 在左侧菜单找到“工具” -> “Better Search Replace”。
    • 搜索:输入你的旧域名http://www.old-domain.com)。
    • 替换为:输入你的新域名https://www.new-domain.com)。
    • 范围:选择“所有表”,确保不遗漏任何地方。
    • 执行 dry run(试运行)先勾选这个选项,然后点击“执行搜索替换”,这个操作只显示会修改哪些内容,而不会真正修改数据库,检查一下结果是否正确。
    • 执行替换:确认无误后,取消勾选“执行 dry run”,然后再次点击“执行搜索替换”,这次会真正修改数据库。
  3. 修改 wp-config.php 文件

    • 与场景一相同,打开 wp-config.php 文件,更新数据库连接信息。
  4. 导入数据库

    • 与场景一相同,登录新主机的 phpMyAdmin,选择新数据库,然后导入你的 .sql 备份文件。

第四步:更新站点 URL 和主页 URL

虽然插件已经替换了大部分 URL,但为了确保万无一失,最好在数据库中直接修改这两个核心选项。

  1. 登录新主机的 phpMyAdmin。
  2. 选择你的 WordPress 数据库。
  3. 点击 wp_options 表(如果你的表前缀不是 wp_,请找到对应的前缀)。
  4. 在表中找到 option_namesiteurlhome 的两条记录。
  5. 点击“编辑”,将 option_value 字段中的值从旧域名改为新域名。
  6. 点击“执行”保存。

第五步:完成迁移并检查

  1. 清空缓存:清空所有缓存和 CDN 缓存。
  2. 访问新域名:在浏览器中访问你的新域名。
  3. 检查功能:与场景一相同,仔细检查所有页面、链接、图片和后台功能。
  4. 更新永久链接:进入后台“设置”->“固定链接”,可以点击一下“保存更改”,这会重新生成 .htaccess 文件,确保链接结构正确。

推荐工具和注意事项

推荐工具

  • All-in-One WP Migration:这是一个非常强大的插件,可以极大地简化迁移过程,特别是更改域名的迁移,它可以将整个网站(文件和数据库)打包成一个 .wpress 文件,你可以轻松地将其导入到新主机上,很多主机商的后台也集成了这个工具的导入功能。
  • Duplicator:另一个流行的迁移和备份插件,功能类似 All-in-One WP Migration。

重要注意事项

  1. 备份,备份,再备份! 在任何操作前,请务必备份好原网站的文件和数据库,这是防止灾难的最后一道防线。
  2. 检查文件权限:上传文件后,确保目录和文件的权限正确,通常目录权限为 755,文件权限为 644,错误的权限会导致网站无法正常工作。
  3. 停用插件:在迁移完成后,如果遇到问题(如白屏),可以先通过 FTP 进入 /wp-content/plugins 文件夹,将其重命名为 plugins_old 来临时禁用所有插件,然后再逐个启用排查问题。
  4. 使用相同的 PHP 版本:尽量在新主机上使用与原主机相同的 PHP 版本,以避免兼容性问题。
  5. DNS 更改:如果你更改了域名,不要忘记在域名注册商那里修改 DNS 服务器,指向你的新主机,这个过程可能需要 24-48 小时生效(DNS 传播时间)。

遵循以上步骤,你的 WordPress 网站迁移过程将会非常顺利,祝你成功!