我将为你提供一个通用、详细、且安全的搬家教程,这个教程适用于绝大多数情况,包括更换域名和不更换域名两种情况。

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

核心思想

搬家的核心步骤可以概括为:

  1. 备份:在原服务器上,完整地备份网站的所有文件和数据库。
  2. 迁移:将备份的文件和数据库上传到新服务器。
  3. 修改:在新服务器上,修改数据库中的信息,使其指向新的域名或路径。
  4. 验证:检查网站是否正常运行,并更新旧的域名解析。

搬家前准备

  1. 新主机:确保你已经购买并配置好了新的主机空间,推荐使用 cPanel 或 Plesk 等控制面板的主机,它们能极大简化操作。
  2. 新域名(如果更换):确保新域名的 DNS 解析已经指向新主机的 IP 地址,DNS 解析通常需要几分钟到 48 小时生效,搬家前可以先做好。
  3. FTP/SFTP 客户端:用于下载和上传网站文件,如 FileZilla。
  4. 数据库管理工具:用于导出和导入数据库,如 phpMyAdmin(通常在主机控制面板里)。
  5. 文本编辑器:用于修改配置文件,如 VS Code、Sublime Text 或 Notepad++。

详细搬家步骤

第一步:在原服务器上备份

这是最关键的一步,请务必确保备份完整。

备份网站文件

  • 通过 FTP/SFTP 连接到你的原主机。
  • 下载 WordPress 网站的根目录下的所有文件和文件夹,通常是 public_htmlwwwhttpdocs
  • 将这些文件下载到你的电脑上,并解压,你可以将其命名为 old-site-files 或类似名称。

备份数据库

wordpress网站搬家
(图片来源网络,侵删)
  • 登录你的主机控制面板(如 cPanel)。
  • 找到并进入 phpMyAdmin 工具。
  • 在左侧的数据库列表中,找到你的 WordPress 数据库(通常以你的网站名为名)。
  • 点击选中该数据库。
  • 点击顶部的 “导出” 选项卡。
  • “快速 - 显示可能的选项” 模式下,直接点击 “执行” 按钮,它会自动选择所有表并生成一个 .sql 文件。
  • 浏览器会自动下载这个数据库备份文件(your_database_name.sql)。请务必保存好它!

第二步:上传文件和数据库到新服务器

上传网站文件

  • 通过 FTP/SFTP 连接到你的主机。
  • 进入新的网站根目录(public_html)。
  • 将你第一步中下载并解压的 old-site-files 文件夹内的上传到这个新根目录。
  • 注意:不要上传 old-site-files 这个文件夹本身,而是要上传它里面的文件。

上传数据库

  • 登录新主机的控制面板。
  • 进入 phpMyAdmin
  • 在左侧,点击 “新建” 创建一个新的数据库,记下这个新数据库名称、用户名和密码(如果新主机没有自动创建用户,你需要手动创建一个用户并授予其所有权限)。
  • 创建成功后,选中这个新的数据库。
  • 点击顶部的 “导入” 选项卡。
  • 点击 “选择文件”,选择你第一步中下载的数据库备份文件(.sql 文件)。
  • 点击 “执行” 按钮,等待导入完成。

第三步:修改配置文件(核心步骤)

这是连接网站文件和数据库的关键,也是最容易出错的地方。

修改 wp-config.php 文件

  • 使用 FTP 连接到新主机,找到并下载根目录下的 wp-config.php 文件到你的电脑。

  • 用文本编辑器打开这个文件。

  • 找到并修改以下三行信息,使其与你在新服务器上创建的数据库信息一致:

    /** WordPress 数据库的名称 */
    define('DB_NAME', 'new_database_name');
    /** MySQL 数据库用户名 */
    define('DB_USER', 'new_database_user');
    /** MySQL 数据库密码 */
    define('DB_PASSWORD', 'new_database_password');
  • 保存文件,然后通过 FTP 将其上传回原位置,覆盖旧文件。

修改数据库中的域名和路径

我们需要告诉 WordPress,它的新家在哪里,有两种方法:


情况 A:更换了域名

如果你的域名从 old-domain.com 变成了 new-domain.com

使用 Better Search Replace 插件(推荐,最安全)

  1. 通过临时访问你的新网站(http://新服务器IP地址),登录 WordPress 后台。
  2. 在后台中,安装并激活 "Better Search Replace" 插件。
  3. 进入 工具 > Better Search Replace
  4. “搜索” 框中输入你的旧域名 http://old-domain.com
  5. “替换为” 框中输入你的新域名 http://new-domain.com
  6. 重要:确保 “运行 dry run first?” 选项是勾选的,先点击 “执行搜索替换”,检查一下搜索出的表和字段是否正确。
  7. 确认无误后,取消勾选 “运行干运行”,然后再次点击 “执行搜索替换”
  8. 替换完成后,删除这个插件。

手动修改数据库(适用于高级用户)

  1. 登录新主机的 phpMyAdmin

  2. 选择你的 WordPress 数据库。

  3. 点击顶部的 “SQL” 选项卡,执行以下几条 SQL 语句。请务必将 old-domain.comnew-domain.com 替换成你自己的域名。

    -- 更新 options 表中的站点 URL 和 home URL
    UPDATE wp_options SET option_value = REPLACE(option_value, 'http://old-domain.com', 'http://new-domain.com') WHERE option_name = 'home' OR option_name = 'siteurl';
    -- 更新 posts 表中的 guid
    UPDATE wp_posts SET guid = REPLACE(guid, 'http://old-domain.com', 'http://new-domain.com');
    -- 更新 posts 表中的 post_content
    UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://old-domain.com', 'http://new-domain.com');
    -- 更新 postmeta 表中的 meta_value
    UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://old-domain.com', 'http://new-domain.com');

    注意:如果你的 WordPress 表前缀不是 wp_,请相应修改。


情况 B:没有更换域名,只更换了主机

如果你的域名不变,只是换了服务器(例如从 old-host.com 换到 new-host.com)。

这种情况通常只需要修改 wp-config.php 中的数据库信息即可,如果网站出现样式丢失、图片不显示等问题,说明数据库中可能还包含旧的路径信息,你也可以使用 Better Search Replace 插件,将旧的主机路径(如 http://old-host.com/wordpress)替换成新的路径(如 http://new-host.com/wordpress)。


情况 C:网站安装在子目录(/wordpress

如果你的网站路径从 old-domain.com 变成了 new-domain.com/wordpress

  1. 首先按照 “情况 A” 的方法,使用插件或 SQL 语句将 old-domain.com 替换为 new-domain.com/wordpress

  2. 你还需要修改 wp-config.php 文件,在 /* That's all, stop editing! Happy publishing. */ 这行上面,添加以下代码:

    define('WP_HOME', 'http://new-domain.com/wordpress');
    define('WP_SITEURL', 'http://new-domain.com/wordpress');

第四步:验证和收尾

  1. 清空缓存:登录新网站的 WordPress 后台,进入设置 > 常规,点击“保存更改”按钮,这会强制刷新网站的一些基本缓存。
  2. 检查网站:通过你的新域名访问网站,检查首页、文章页面、页面、图片、链接、导航菜单等是否都正常。
  3. 登录后台:尝试通过 你的新域名/wp-admin 登录 WordPress 后台,确保一切正常。
  4. 设置固定链接:进入后台 > 设置 > 固定链接,点击“保存更改”一次,这可以重新生成 .htaccess 文件,解决很多伪静态链接的问题。
  5. 更新旧域名解析:确认新网站完全正常后,回到你的域名注册商处,将旧域名的 DNS 解析修改到新主机的 IP 地址,这样,所有访问旧域名的用户都会被自动重定向到新网站。

常见问题与解决方案

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

    • 原因wp-config.php 文件中的数据库信息(数据库名、用户名、密码)不正确。
    • 解决:重新检查并确认这些信息与你在新主机上创建的数据库信息完全一致。
  • 问题2:网站样式丢失,显示为白屏或主题错误

    • 原因:域名没有正确更新,或者文件路径不正确。
    • 解决:重新使用 Better Search Replace 插件或 SQL 语句检查并替换域名,确保所有文件都已正确上传。
  • 问题3:网站重定向到旧域名或无限重定向

    • 原因wp-config.php 文件中的 WP_HOMEWP_SITEURL 定义了错误的域名。
    • 解决:检查并删除 wp-config.php 中手动添加的这两行代码(如果有的话),然后进入后台设置 > 常规,确保“WordPress 地址”和“站点地址”是正确的新域名。
  • 问题4:图片和链接无法显示

    • 原因:数据库中的内容还是旧域名的地址。
    • 解决:再次使用 Better Search Replace 插件,仔细搜索并替换所有旧域名的链接。
  • 问题5:无法登录后台

    • 原因:可能是 Cookie 问题或域名未正确更新。
    • 解决
      1. 尝试在浏览器地址栏的 wp-admin 后面加上 ?wp-login.phpyourdomain.com/wp-login.php?wp-admin
      2. 清空浏览器缓存和 Cookie。
      3. 检查数据库中的域名是否已完全更新。

自动化工具推荐

如果你觉得手动步骤太繁琐,可以考虑使用插件来自动化搬家过程:

  • All-in-One WP Migration:非常流行的插件,可以打包整个网站(包括文件和数据库)成一个 .wpress 文件,然后在新站上导入,它有免费版和付费版,付费版可以移除导入大小限制,这是最简单、最推荐的懒人方法。
  • Duplicator:另一个强大的插件,同样可以打包和迁移整个网站。

使用插件的优势:操作简单,几乎不会出错。 使用插件的劣势:对于超大型网站,可能会因为内存限制而失败。

希望这份详细的教程能帮助你顺利完成 WordPress 网站的搬家!祝你一切顺利!