我将为您提供一个详尽、通用且安全的 WordPress 搬家指南,适用于从一台服务器搬到另一台服务器,或者更换域名。

wordpress 网站搬家
(图片来源网络,侵删)

核心步骤概览

整个搬家过程可以概括为以下五个主要步骤:

  1. 准备工作: 在新服务器上部署一个全新的 WordPress 环境。
  2. 导出旧站: 从原网站导出所有文件和数据库。
  3. 导入新站: 将文件和数据库上传到新服务器。
  4. 修改配置: 更新新网站中的数据库信息,特别是域名地址。
  5. 最终检查: 清理缓存、测试网站功能并重定向流量。

详细操作步骤

第一步:准备工作(在新服务器上)

在开始操作之前,确保你的新服务器已经准备好了运行 WordPress 的环境。

  1. 购买新主机/域名:

    • 如果是更换域名,请购买新的域名并完成解析(DNS 解析)。
    • 如果是更换主机,请购买新的主机套餐,并获取 FTP/SFTP 登录信息、数据库信息(主机名、用户名、密码、数据库名)和控制面板(如 cPanel, Plesk)的登录地址。
  2. 安装 WordPress:

    wordpress 网站搬家
    (图片来源网络,侵删)
    • 方法一(推荐新手): 登录新主机的控制面板,使用“一键安装”程序(如 Softaculous, Fantastico)快速安装一个全新的 WordPress。注意: 在安装过程中,你可以先随便填一个域名或 IP 地址,因为我们之后会完全覆盖它。
    • 方法二(手动安装):WordPress.org 下载最新版的 WordPress,通过 FTP 将 wordpress 文件夹内的所有文件上传到你的新主机根目录(通常是 public_htmlwww),然后手动创建数据库和数据库用户,并访问你的域名开始安装流程。
  3. 记录新信息: 务必记下新主机的以下信息:

    • FTP/SFTP 主机地址、用户名、密码
    • 数据库主机名、数据库名、数据库用户名、数据库密码
    • 控制面板登录地址

第二步:导出旧网站

这是从原网站获取所有数据的过程。

  1. 导出数据库:

    • 登录你原网站的数据库管理工具,通常是 phpMyAdmin,你可以在原主机的控制面板中找到它。
    • 选择你的 WordPress 数据库。
    • 点击顶部的 “导出” 选项卡。
    • 导出方法: 选择 “快速” - 对于大多数网站来说这足够了,如果网站很大或有复杂的自定义数据,可以选择 “自定义”,并确保勾选了 “添加 DROP TABLE/VIEW/PROCEDURE/FUNCTION 选项,这可以避免导入时因表已存在而报错。
    • 格式: 选择 “SQL”
    • 点击 “执行” 按钮,浏览器会开始下载一个 .sql 文件(yourdatabase.sql)。妥善保存这个文件!
  2. 导出文件:

    wordpress 网站搬家
    (图片来源网络,侵删)
    • 使用 FTP 客户端(如 FileZilla)连接到你的原主机。
    • 下载整个 WordPress 网站的文件,这包括 WordPress 核心文件、主题、插件以及所有上传的媒体文件(通常在 wp-content/uploads 目录下)。
    • 将下载的文件打包成一个 .zip 压缩包,方便传输。

第三步:导入新网站

将刚才导出的数据和文件放到新服务器上。

  1. 上传文件:

    • 使用 FTP 客户端连接到你的新主机
    • 进入网站的根目录(public_htmlwww)。
    • 清空目录: 删除 public_html 目录下所有自动安装的 WordPress 文件(wp-config.php, wp-content, wp-includes 等),否则会与新文件冲突。
    • 上传你从旧站下载并打包好的 .zip 文件,然后在服务器上解压它。
  2. 导入数据库:

    • 登录新主机的 phpMyAdmin
    • 在左侧列表中,创建一个新的数据库(数据库名最好和旧站一样,或者使用一个你准备好的新名字)。
    • 创建一个新的数据库用户,并为该用户授予所有权限(ALL PRIVILEGES)到这个新数据库。
    • 选择你刚刚创建的新数据库。
    • 点击顶部的 “导入” 选项卡。
    • 点击 “选择文件”,然后选择你从旧站下载的 .sql 文件。
    • 点击 “执行” 按钮,等待导入完成,你会看到成功提示。

第四步:修改配置(最关键的一步)

这是让新网站“活”过来,并正确识别自身身份的核心步骤。

  1. 修改 wp-config.php 文件:

    • 通过 FTP 连接到新主机,找到 wp-config.php 文件(在网站根目录下)。
    • 用文本编辑器(如 Notepad++, VS Code)打开它。
    • 修改以下三行信息,使其与你新服务器的数据库信息完全一致:
      define('DB_NAME', '你的新数据库名');
      define('DB_USER', '你的新数据库用户名');
      define('DB_PASSWORD', '你的新数据库密码');
      define('DB_HOST', '你的新数据库主机名'); // 通常是 'localhost'
    • 保存并关闭文件。
  2. 搜索并替换数据库中的旧域名(至关重要):

    • 你的数据库里还存满了旧域名(http://www.old-site.com),必须全部替换成新域名(http://www.new-site.com)。手动在数据库里搜索替换非常危险,极易出错,强烈推荐使用插件。
    • 推荐方法:使用 Better Search Replace 插件
      1. 通过 FTP 在新站点的 wp-content/plugins 目录下创建一个名为 better-search-replace 的文件夹。
      2. Better Search Replace 插件页面 下载 .zip 文件,解压后把里面的文件上传到这个新创建的文件夹里。
      3. 登录你的新网站后台(访问 your-new-site.com/wp-admin)。
      4. 在左侧菜单中找到 “工具” > “Better Search Replace”
      5. 搜索: 在第一个输入框中填入你的旧域名www.old-site.com)。
      6. 替换为: 在第二个输入框中填入你的新域名www.new-site.com)。
      7. 选择表: 勾选所有数据库表(通常以 wp_ 开头)。
      8. 执行: 向下滚动,确保 “Dry Run Mode”(试运行模式)未勾选状态,然后点击 “Run Search/Replace” 按钮。
      9. 等待操作完成,完成后,你会看到替换成功的提示。

第五步:最终检查与清理

  1. 清理:

    • 删除 better-search-replace 插件,因为它只在搬家时需要。
    • 如果旧网站还在线,暂时不要关闭它,直到你确认新网站完全正常。
  2. 测试:

    • 在浏览器中访问你的新域名。
    • 检查网站:
      • 首页是否正常显示?
      • 点击各个页面链接是否正常?
      • 文章和分类是否正常?
      • 图片是否能正常显示?(检查 wp-content/uploads 目录下的文件是否都已上传)
      • 主题和插件是否正常工作?有时可能需要重新激活一下。
      • 登录后台 (/wp-admin) 是否正常?
  3. 设置重定向(可选但推荐):

    • 为了让搜索引擎和访问者能顺利从旧网站跳转到新网站,你需要在旧网站的服务器上设置 301 重定向。
    • 对于 Apache 服务器: 在旧网站的根目录下创建或编辑 .htaccess 文件,添加以下代码:
      Redirect 301 / http://www.new-site.com/
    • 对于 Nginx 服务器: 在 Nginx 的配置文件中添加:
      server {
          ...
          return 301 http://www.new-site.com$request_uri;
      }
    • 联系你的旧主机服务商,如果不确定如何操作,他们通常会提供帮助。

常见问题与解决方案

  • 问题:网站显示“建立数据库连接时出错”。

    • 原因: wp-config.php 文件中的数据库信息(数据库名、用户名、密码、主机名)不正确。
    • 解决: 仔细检查并核对 wp-config.php 中的信息,确保与你在新主机上创建的数据库信息完全一致。
  • 问题:网站显示“首页正常,但点击内链后跳转到旧域名”。

    • 原因: 数据库中的旧域名没有被完全替换,可能是你漏掉了某些表(如 wp_options 表中的 homesiteurl)。
    • 解决: 重新使用 Better Search Replace 插件,确保搜索了所有表,并且旧域名没有多余空格或协议(如 http://https:// 都要试一次)。
  • 问题:网站样式错乱,或者部分功能不正常。

    • 原因:
      1. 文件路径问题: 如果搬家前后域名长度不同,主题或插件中的硬编码路径可能会出错。
      2. 插件冲突: 某些插件可能对环境敏感。
    • 解决:
      1. 尝试在后台切换到默认主题(如 Twenty Twenty-Three),看看问题是否解决。
      2. 禁用所有插件,然后逐个重新启用,找出导致问题的插件并更新或替换它。
  • 问题:图片无法显示。

    • 原因: wp-content/uploads 目录没有正确上传,或者目录权限不正确。
    • 解决: 通过 FTP 检查 uploads 文件夹是否存在,并确保其权限设置为 755,重新上传缺失的图片文件。

希望这份详细的指南能帮助你顺利完成 WordPress 网站的搬家!操作前务必备份,祝你成功!