核心思想

WordPress 移植的核心在于 “路径不变,数据同步”,只要你的网站在新服务器上的文件路径和数据库信息与旧服务器上保持一致,移植过程就会非常顺利。

wordpress网站移植
(图片来源网络,侵删)

第一步:准备工作(至关重要!)

在开始任何操作之前,请务必完成以下准备工作,这是避免灾难性后果的关键。

  1. 备份!备份!备份!

    • 数据库备份:这是最核心的部分,如果数据库丢失,你的所有文章、页面、用户、评论等都将消失。
    • 文件备份:包括所有主题、插件、上传的媒体文件(图片等)以及 WordPress 核心文件。
    • 如何备份
      • 插件法(推荐):使用插件如 All-in-One WP MigrationDuplicator,它们可以一键打包整个网站(文件+数据库)成一个文件,非常方便。
      • 手动法
        • 数据库:通过 phpMyAdmin 导出数据库(选择“快速”或“自定义”格式,并勾选“添加 DROP TABLE/VIEW/PROCEDURE/FUNCTION”选项)。
        • 文件:通过 FTP 或文件管理器,将整个 WordPress 网站目录下载到本地。
  2. 获取新服务器的信息

    • FTP/SFTP 主机、用户名、密码
    • 数据库主机名数据库名数据库用户名数据库密码
    • 新域名(如果你更换了域名)
  3. (可选)准备一个 robots.txt 文件

    wordpress网站移植
    (图片来源网络,侵删)
    • 在本地创建一个 robots.txt 文件,内容为 User-agent: * Disallow: /
    • 在迁移完成后,上传到网站根目录,用于临时禁止搜索引擎抓取,防止出现重复内容等问题,迁移成功并测试无误后,再删除它或修改为正常内容。

第二步:迁移文件

这一步的目标是将你网站的文件从旧服务器移动到新服务器。

  1. 连接到新服务器:使用 FTP 客户端(如 FileZilla)或主机商提供的文件管理器,连接到你的新服务器。
  2. 上传文件
    • 将你备份好的整个 WordPress 网站文件(从 wp-contentwp-config.php 等)上传到新服务器的 Web 根目录(通常是 public_html, www, 或 htdocs)。
    • 注意:如果新服务器上已有其他网站,请确保上传到正确的子目录中。
  3. 设置文件权限
    • 上传完成后,请确保关键目录和文件的权限正确。
    • 目录权限755 (wp-content, wp-includes, wp-admin)
    • 文件权限644 (.htaccess, wp-config.php, PHP 文件)
    • 上传目录权限755777777 有安全风险,仅在无法上传文件时临时使用,成功后改回 755

第三步:迁移数据库

这是移植中最关键也最容易出错的一步。

使用插件(最简单、推荐)

如果你使用了 All-in-One WP Migration 或 Duplicator 插件,这一步会变得非常简单。

  1. 在新站上安装插件:在新服务器的 WordPress 网站上,安装并激活你之前使用的那个插件。
  2. 导入数据包
    • 打开插件,找到“导入”或“恢复”选项。
    • 上传你在旧站点导出的那个 .wpress.zip 数据包文件。
    • 插件会自动解压、导入数据库,并处理路径问题,通常你只需要等待它完成即可。

手动操作(更灵活,需要技术基础)

  1. 创建新数据库

    wordpress网站移植
    (图片来源网络,侵删)
    • 登录新服务器的 cPanel 或其他控制面板。
    • 找到“数据库”或“MySQL 数据库”工具。
    • 创建一个新的数据库,并创建一个具有所有权限的用户,然后将这个用户绑定到新数据库上,记下数据库名、用户名和密码。
  2. 上传并修改 wp-config.php

    • 用文本编辑器打开你备份的 wp-config.php 文件。
    • 将数据库信息(数据库名、用户名、密码、数据库主机)替换成新服务器的信息。
      /** 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,也可能是数据库地址

  3. 导入数据库

    • 登录新服务器的 phpMyAdmin。
    • 选择你刚刚创建的那个新数据库。
    • 点击“导入”选项卡。
    • 选择你之前备份的 .sql 数据库文件,然后点击“执行”。

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

无论你使用哪种方法,现在都必须告诉 WordPress 它的新家在哪里。

  1. 登录 phpMyAdmin,选择你的 WordPress 数据库。

  2. 点击顶部的“SQL”选项卡,执行以下两条 SQL 语句来更新网站的 URL。请务必将 http://www.old-domain.com 替换为你的旧域名,http://www.new-domain.com 替换为新域名。

    • 更新 options 表中的 siteurlhome
      UPDATE wp_options SET option_value = 'http://www.new-domain.com' WHERE option_name = 'siteurl';
      UPDATE wp_options SET option_value = 'http://www.new-domain.com' WHERE option_name = 'home';
    • 注意:如果你的表前缀不是 wp_,请将其修改为你的实际表前缀。
  3. (可选但推荐)搜索并替换所有 URL: 有时,文章内容中的图片链接、主题或插件的设置里也可能包含旧域名,为了彻底解决,可以使用更强大的 SQL 查询来替换所有内容:

    -- 替换文章内容中的旧域名
    UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://www.old-domain.com', 'http://www.new-domain.com');
    -- 替换文章摘要中的旧域名
    UPDATE wp_posts SET post_excerpt = REPLACE(post_excerpt, 'http://www.old-domain.com', 'http://www.new-domain.com');
    -- 替换自定义字段中的旧域名
    UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://www.old-domain.com', 'http://www.new-domain.com');

    同样,请根据你的表前缀修改 wp_posts, wp_postmeta 等。


第五步:测试与修复

你的网站理论上已经在新服务器上了,让我们来测试一下。

  1. 访问网站:在浏览器中输入你的新域名。

    • 如果一切正常:恭喜你!网站应该可以正常显示了,请检查首页、文章页、页面、图片是否能正常加载。
    • 如果出现“建立数据库连接时出错”:说明数据库信息有误,请检查 wp-config.php 文件中的数据库信息是否正确。
    • 如果网站样式错乱或功能异常:这很可能是由于路径问题,可以尝试登录 WordPress 后台,在“设置” -> “常规”中,再次确认“WordPress 地址(URL)”和“站点地址(URL)”是否正确。
  2. 重置固定链接

    • 登录 WordPress 后台。
    • 进入“设置” -> “固定链接”。
    • 无需更改任何设置,直接点击“保存更改”,这个操作会刷新网站的 .htaccess 文件,解决很多 404 错误问题。
  3. 检查并更新插件/主题

    • 有些插件或主题可能对服务器环境有特定要求,进入后台,检查是否有插件显示不兼容或需要更新。
    • 如果某些功能异常,可以尝试暂时禁用所有插件,然后逐一重新启用,找出问题插件。
  4. 删除临时文件

    • 确认网站一切正常后,删除之前创建的用于禁止抓取的 robots.txt 文件。

第六步:最终收尾

  1. 更新 DNS:如果你更换了域名注册商,或者只是更换了主机,请确保你的域名 DNS 指向了新的服务器,这通常需要 24-48 小时生效(DNS 解析时间)。
  2. 旧服务器处理:确认新网站稳定运行后,你就可以在旧服务器上删除网站文件和数据库了。
  3. 设置 SSL 证书:强烈建议为新域名安装一个免费的 SSL 证书(如 Let's Encrypt),将网站升级为 HTTPS,这既安全也有利于 SEO。

常见问题与解决方案

  • 问题:网站出现大量 404 错误。

    • 解决:进入后台“设置”->“固定链接”,点击“保存更改”重写 .htaccess 文件,确保服务器开启了 mod_rewrite 模块(Apache 环境)。
  • 问题:图片显示不出来,但其他正常。

    • 解决:这通常是数据库中的图片路径没有更新,请使用上面提到的“搜索并替换所有 URL”的 SQL 语句进行修复。
  • 问题:网站加载缓慢或出现白屏。

    • 解决:检查 PHP 版本是否兼容,内存限制是否足够,可以尝试在 wp-config.php 文件中添加以下代码来增加内存限制(在 <?php 之后):
      define('WP_MEMORY_LIMIT', '256M');
  • 问题:无法登录后台。

    • 解决
      1. 检查 wp-config.php 中的 WP_HOMEWP_SITEURL 定义是否正确。
      2. 尝试使用 FTP 修改 wp-config.php 文件,在 <?php 后面添加:define('RELOCATE', true);,然后尝试登录,登录成功后再删除这行。
      3. 检查主题或插件是否冲突,尝试通过 FTP 重命名 wp-content/pluginswp-content/themes 文件夹,然后重命名回来逐一排查。

希望这份详细的指南能帮助你顺利完成 WordPress 网站的移植!