迁移前:准备工作(至关重要!)

在开始任何操作之前,请务必完成以下准备工作,这能帮你规避 90% 的风险。

  1. 备份,备份,再备份!

    • 网站文件备份:通过 FTP 或主机控制面板的文件管理器,下载你网站根目录下的所有文件,通常是一个名为 public_htmlwwwhtdocs 的文件夹。
    • 数据库备份:登录你的主机控制面板(如 cPanel, Plesk),找到“phpMyAdmin”工具,选择你的 WordPress 数据库,然后点击“导出”,选择“快速”导出格式,确保格式为“SQL”,然后点击“执行”下载 .sql 文件。
    • 推荐插件:安装并使用插件(如 UpdraftPlusAll-in-One WP Migration)进行一键备份,它们会同时备份文件和数据库,并生成一个可下载的压缩包,非常方便。
  2. 记录关键信息

    • 旧站点信息
      • 网站地址http://www.oldsite.com
      • 数据库信息:主机名、数据库名、数据库用户名、数据库密码,这些可以在 wp-config.php 文件中找到,也可以在主机控制面板的数据库设置里看到。
    • 新站点信息
      • 网站地址http://www.newsite.com (或临时域名,如 http://temp.newsite.com)
  3. 选择迁移方法

    • 新手/懒人方法:使用插件(强烈推荐,最简单、最安全)。
    • 手动方法:通过 FTP 和 phpMyAdmin 进行(适合有一定技术基础的用户,能更好地理解原理)。
    • 主机自带工具:一些主机服务商(如 SiteGround, Kinsta)提供免费的站点迁移服务或一键迁移工具。

使用插件迁移(最推荐)

这是最简单、最不容易出错的方法,强烈推荐给所有用户。

步骤 1:在旧站点安装迁移插件

  1. 登录你的旧站点 WordPress 后台。
  2. 进入“插件” -> “安装插件”。
  3. 搜索并安装 All-in-One WP MigrationUpdraftPlus
    • All-in-One WP Migration:界面直观,操作简单,有免费版和付费版(免费版对大多数迁移足够了)。
    • UpdraftPlus:功能强大,支持多种云存储,免费版也完全够用。

步骤 2:使用插件导出网站

All-in-One WP Migration 为例:

  1. 安装并激活插件后,在左侧菜单会看到“All-in-One WP Migration”。
  2. 点击它,然后选择“导出”。
  3. 插件会自动打包你的网站文件、主题、插件和数据库。
  4. 打包完成后,会提供一个下载按钮。点击下载完整的网站包,这个文件通常是一个 .wpress.zip 格式的文件。

步骤 3:在新站点导入网站

  1. 重要:在新站点上,请务必先安装并激活 同一个迁移插件(旧站点用的是 All-in-One,新站点也要安装 All-in-One)。
  2. 登录新站点的 WordPress 后台。
  3. 进入该插件的页面(All-in-One WP Migration”)。
  4. 选择“导入”。
  5. 点击“选择文件”按钮,上传你在旧站点下载的那个 .wpress 文件。
  6. 上传并导入完成后,插件会提示你进行“站点替换”或“站点配置”。

步骤 4:处理域名和站点地址

这是最关键的一步!插件通常会自动帮你完成,但最好检查一下。

  1. 在导入成功后,插件会提供一个“站点设置”页面。
  2. 你需要修改两个地址:
    • WordPress 地址 (URL):将其改为你的新域名,http://www.newsite.com
    • 站点地址 (URL):同样改为你的新域名。
  3. 保存设置。

步骤 5:完成并测试

  1. 清除缓存:在新站点的缓存插件(如 WP Rocket, W3 Total Cache)中清除所有缓存,如果使用了 CDN(如 Cloudflare),也要在 CDN 后台清除缓存。
  2. 测试网站
    • 访问你的新域名,确保网站能正常打开。
    • 检查所有页面、文章、图片是否都显示正常。
    • 检查导航菜单、侧边栏、页脚等元素是否完好。
    • 测试一下联系表单、购物车等交互功能是否正常。
  3. 更新 DNS:确认网站在新域名上一切正常后,再到你的域名注册商那里,将域名的 DNS 指向新主机的服务器,这个过程可能需要几分钟到 48 小时不等(DNS 解析生效时间)。

手动迁移(FTP + phpMyAdmin)

如果你想深入了解迁移过程,或者插件迁移失败,可以尝试手动方法。

步骤 1:下载旧站点文件

  1. 使用 FTP 客户端(如 FileZilla)连接到旧主机。
  2. 下载整个网站根目录(public_htmlwww)到你的电脑。

步骤 2:导出旧站点数据库

  1. 登录旧主机的控制面板,进入 phpMyAdmin。
  2. 选择你的 WordPress 数据库。
  3. 点击“导出”选项卡。
  4. 选择“快速” - 显示“SQL”,然后点击“执行”。
  5. 将下载的 .sql 文件保存到电脑上。

步骤 3:上传文件到新站点

  1. 使用 FTP 连接到你的新主机。
  2. 将你从旧站点下载的所有文件上传到新主机的根目录中。注意:如果新站点已经有默认的页面文件(如 index.html),请先删除它们,再覆盖上传。

步骤 4:创建新数据库

  1. 登录新主机的控制面板。
  2. 找到“MySQL 数据库”或“数据库”工具。
  3. 创建一个新的数据库,记下数据库名、用户名和密码。

步骤 5:修改 wp-config.php 文件

  1. 在你的电脑上,找到刚刚上传的 wp-config.php 文件(它在网站根目录下)。

  2. 用文本编辑器打开它,找到以下几行并修改为新数据库的信息:

    /** WordPress 数据库的名称 */
    define('DB_NAME', 'new_database_name');
    /** MySQL 数据库用户名 */
    define('DB_USER', 'new_database_user');
    /** MySQL 数据库密码 */
    define('DB_PASSWORD', 'new_database_password');
    /** MySQL 主机 */
    define('DB_HOST', 'localhost'); // 大多数情况下是 localhost,如果不是,请查看你的主机商提供的信息

步骤 6:导入数据库

  1. 登录新主机的 phpMyAdmin。
  2. 选择你刚刚创建的那个新数据库
  3. 点击“导入”选项卡。
  4. 点击“选择文件”,然后选择你从旧站点导出的那个 .sql 文件。
  5. 点击“执行”等待导入完成。

步骤 7:搜索并替换域名

这是手动方法中最容易出错的一步!数据库中仍然存储着旧域名,必须全部替换。

  1. 在 phpMyAdmin 中,确保你仍在那个新数据库里。

  2. 点击顶部的“SQL”选项卡,执行一个搜索替换命令。

  3. 在输入框中粘贴以下代码,务必将 http://www.oldsite.comhttp://www.newsite.com 替换成你自己的旧域名和新域名!

    UPDATE wp_options SET option_value = replace(option_value, 'http://www.oldsite.com', 'http://www.newsite.com') WHERE option_name = 'home' OR option_name = 'siteurl';
    UPDATE wp_posts SET guid = replace(guid, 'http://www.oldsite.com', 'http://www.newsite.com');
    UPDATE wp_posts SET post_content = replace(post_content, 'http://www.oldsite.com', 'http://www.newsite.com');
    UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://www.oldsite.com', 'http://www.newsite.com');

    注意:如果你的数据库表前缀不是 wp_,请将其修改为你自己的表前缀。

  4. 点击“执行”。

步骤 8:完成与测试

这一步与插件方法的步骤 5 完全相同:

  1. 清除缓存。
  2. 测试网站所有功能。
  3. 更新 DNS。

迁移后常见问题及解决方法

  1. 网站显示“建立数据库连接时出错”

    • 原因wp-config.php 中的数据库信息错误,或数据库用户权限不足。
    • 解决:检查数据库名、用户名、密码、主机名是否全部正确,确保该用户对新数据库有“所有权限”。
  2. 网站显示“首页无法显示,或重定向循环”

    • 原因wp_options 表中的 siteurlhome 仍然是旧域名。
    • 解决
      • 方法 A(推荐):安装 Better Search Replace 插件,在后台直接搜索旧域名并替换为新域名。
      • 方法 B:通过 phpMyAdmin 手动执行上述的搜索替换 SQL 语句。
  3. 图片显示不出来,或显示为“?”

    • 原因:图片路径仍然是旧域名,或者上传目录权限不正确。
    • 解决:确认你已经执行了搜索替换域名操作,如果问题依旧,检查新站点 wp-content/uploads 文件夹的权限是否设置为 755。
  4. 部分插件或主题不工作

    • 原因:可能是插件/主题与新版 PHP、WordPress 或新服务器环境不兼容。
    • 解决:暂时禁用所有插件,然后逐一启用,找出问题插件,检查主题和插件的官方页面,看是否有更新说明。
  • 新手首选All-in-One WP Migration 插件,简单高效,几乎零风险。
  • 技术爱好者手动方法,能让你对网站结构有更深的理解。
  • 核心原则备份!备份!备份! 迁移前后的测试和缓存清理同样重要。

希望这份详细的指南能帮助你顺利完成 WordPress 网站的迁移!如果在操作中遇到任何具体问题,可以随时提问。