迁移一个WordPress网站——无论是迁移到新的主机、改变域名,还是从临时环境转移到生产环境——都是大多数WordPress用户在某个时候会面临的任务。如果操作正确,迁移只需30-60分钟且不会有停机时间。如果操作不当,可能会导致链接损坏、图片丢失、数据库错误和数小时的故障排除。
在本指南中,我们涵盖了三种迁移方法:手动迁移(完全控制)、插件辅助迁移(简化操作)和托管服务提供商迁移(便捷)。每种方法都包括逐步说明和验证检查清单。
迁移前:准备检查清单
| 步骤 | 重要性 | 如何操作 |
|---|---|---|
| 创建完整备份 | 迁移失败时的安全网 | 使用 UpdraftPlus 或手动导出 |
| 记录当前设置 | 迁移后验证的参考 | 截图wp-admin设置、活动插件列表、永久链接结构 |
| 检查服务器要求 | 确保新主机满足WordPress最低要求 | PHP 8.0+,MySQL 5.7+ / MariaDB 10.4+,支持HTTPS |
| 记录DNS设置 | 迁移后需要更新DNS | 从注册商导出当前DNS记录 |
| 减少TTL | 加快迁移后的DNS传播 | 在迁移前24小时将DNS TTL设置为300秒(5分钟) |
方法1:手动迁移(完全控制)
手动迁移让您对整个过程拥有完全控制权。这是开发人员和具有自定义配置的复杂网站的首选方法。
步骤1:导出数据库
通过SSH或phpMyAdmin连接到当前主机并导出WordPress数据库:
使用命令行(SSH):
- 运行:
mysqldump -u username -p database_name > backup.sql - 将backup.sql文件下载到本地计算机
使用phpMyAdmin:
- 选择您的数据库 → 导出 → 快速导出 → SQL格式 → 转到
- 保存.sql文件
步骤2:复制所有文件
从当前服务器下载所有WordPress文件:
- 通过SFTP连接(FileZilla、WinSCP或Cyberduck)
- 下载整个WordPress目录(wp-content、wp-admin、wp-includes、根文件)
- 或者,创建一个压缩档案:
tar -czf wordpress-backup.tar.gz /path/to/wordpress/
wp-content目录是最重要的——它包含您的主题、插件、上传的文件(图片)和配置文件。
步骤3:将文件上传到新服务器
- 通过SFTP上传或在新服务器上解压缩档案
- 确保文件权限正确:目录为755,文件为644
- 验证wp-config.php文件存在但需要更新
步骤4:在新服务器上创建数据库
- 在新主机上创建一个新的MySQL数据库和用户
- 授予用户对新数据库的完全权限
- 导入数据库:
mysql -u new_username -p new_database < backup.sql
步骤5:更新wp-config.php
在新服务器上使用新的数据库凭据编辑wp-config.php:
DB_NAME→ 新数据库名称DB_USER→ 新数据库用户名DB_PASSWORD→ 新数据库密码DB_HOST→ 通常为'localhost',但请与您的主机确认
步骤6:搜索和替换URL(如果更改域名)
如果您的域名正在更改,您需要更新数据库中的所有URL。WordPress为图片、链接和序列化数据存储绝对URL。使用WP-CLI工具或Search Replace DB脚本:
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables- 这正确处理序列化数据(与简单的 SQL 查找和替换不同)
步骤 7:更新 DNS
将您域名的 DNS 记录指向新服务器的 IP 地址。在您的域名注册商处更新 A 记录(以及 IPv6 的 AAAA 记录)。将 TTL 设置为 300 秒(从准备开始),传播通常在 5-30 分钟内完成。
方法 2:插件迁移(最简单)
迁移插件自动处理技术细节。这是推荐给不熟悉 SSH 和数据库管理的用户的方法。
推荐的迁移插件
| 插件 | 免费限制 | 主要功能 |
|---|---|---|
| All-in-One WP Migration | 512 MB 导出 | 一键导出/导入,包含 URL 替换 |
| UpdraftPlus Premium | 备份免费,迁移付费 | 增量备份,云存储,网站克隆 |
| Duplicator Pro | 500 MB 导出(免费) | 创建安装包,处理序列化数据 |
| WP Migrate | 有限(免费) | 在环境之间推送/拉取,仅数据库迁移 |
迁移过程(All-in-One WP Migration)
- 在源站点上安装:在当前站点上安装并激活插件
- 导出:转到 All-in-One → 导出 → 导出到 → 文件。插件创建一个 .wpress 归档
- 在目标上安装 WordPress:在新主机上设置一个全新的 WordPress 安装
- 在目标上安装插件:在新的 WordPress 安装上安装相同的插件
- 导入:转到 All-in-One → 导入 → 上传 .wpress 文件
- 完成:插件自动替换数据库、文件并更新 URL
方法 3:托管提供商迁移
许多托管提供商提供免费的迁移服务或内置迁移工具:
- SiteGround:通过他们的 Migrator 插件提供免费的 WordPress 迁移
- Cloudways:由他们的团队提供的第一次免费迁移
- Kinsta:所有计划均包含免费的迁移,由他们的团队处理
- WP Engine:自动迁移插件
托管辅助迁移是最简单的选项,但给您控制权最少。对于具有自定义配置、定时任务或非标准设置的网站,手动或插件迁移更可靠。
迁移后验证检查清单
| 检查 | 如何验证 | 如果失败 |
|---|---|---|
| 主页加载正确 | 在浏览器中访问您的域名 | 检查 DNS 传播,验证数据库连接 |
| 管理员登录正常 | 转到 /wp-admin 并登录 | 检查 wp-config.php 数据库凭据 |
| 永久链接正常 | 点击任意帖子或页面 | 转到 设置 → 永久链接 → 保存(重新生成 .htaccess) |
| 图像显示正确 | 浏览几个包含图像的页面 | 在上传路径中运行旧域名的搜索替换 |
| 表单成功提交 | 测试所有联系表单 | 检查 SMTP 设置,表单插件配置 |
| SSL 证书有效 | 检查浏览器中的锁定图标 | 在新主机上安装 SSL,将 WordPress URL 更新为 https |
| 电子邮件发送正常 | 触发密码重置电子邮件 | 配置 SMTP 插件(WP Mail SMTP) |
| WooCommerce 正常运行 | 测试添加到购物车和结账流程 | 验证支付网关密钥,运输区域 |
| 定时任务运行正常 | 检查 WP-Crontrol 中的计划任务 | 验证 wp-cron 是否启用或设置服务器 |
| 搜索功能 | 测试站点搜索 | 如果使用搜索插件,重建搜索索引 |
常见迁移问题及解决方案
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 迁移后白屏 | PHP版本不匹配或插件冲突 | 启用WP_DEBUG,检查PHP版本,通过FTP禁用插件 |
| 混合内容警告 | 某些URL仍使用http://而不是https:// | 运行搜索替换: http://domain.com → https://domain.com |
| 图像损坏 | 上传路径未更新或文件丢失 | 验证wp-content/uploads目录,运行URL搜索替换 |
| 数据库连接错误 | wp-config.php中的凭据错误 | 验证DB_NAME,DB_USER,DB_PASSWORD,DB_HOST |
| 除主页外所有页面404 | 永久链接.htaccess未重新生成 | 设置 → 永久链接 → 保存更改 |
| 重定向循环 | 旧的CDN或缓存规则冲突 | 清除所有缓存,检查.htaccess以寻找冲突的重定向 |
有关更多详细信息,请参阅官方文档: WordPress 迁移文档.
常见问题解答
WordPress迁移需要多长时间?
典型的迁移过程需要30-60分钟。DNS传播可能会根据您的TTL设置和ISP缓存增加5分钟到48小时。在迁移前24小时将TTL减少到300秒可以最小化传播延迟。
迁移过程中会丢失数据吗?
如果您遵循备份优先的方法,就不会丢失数据。在开始之前创建完整备份,并且在验证新主机上的一切正常之前不要删除旧站点。备份确保您可以在出现问题时恢复到原始状态。
我可以在不宕机的情况下迁移WordPress网站吗?
可以。关键是在更新DNS之前完成新服务器上的迁移。在新主机上设置网站,验证一切正常(使用临时URL或hosts文件条目),然后更新DNS。在DNS传播之前,用户将由旧服务器提供服务,之后无缝切换到新服务器。
迁移后我需要重新安装插件和主题吗?
不需要。完整迁移(文件 + 数据库)包括所有插件、主题、上传和设置。一切都按原样转移。您应该验证插件是否处于活动状态并正确配置,但不需要重新安装。
如果我的网站太大,无法使用迁移插件怎么办?
超过2-5 GB的网站(媒体密集型网站常见)可能会遇到上传限制或迁移插件的超时问题。在这种情况下,请使用手动方法:通过SSH/SFTP传输文件,并通过命令行导入数据库。可以使用--max_allowed_packet参数拆分大型数据库。
我应该在迁移之前还是之后更新WordPress、插件和主题?
在源站点上迁移之前更新,并在更新后验证一切正常。迁移已经更新的网站可以避免在不熟悉的服务器上排查更新问题的复杂性。有关安全性和性能最佳实践,请参阅我们的WordPress维护清单。



