无论是更换 VPS 服务商、升级套餐,还是更换域名,WordPress 网站迁移都是站长必须面对的操作。本文提供两种迁移方式:插件一键迁移(适合新手)和手动迁移(适合进阶用户),并详细说明迁移后的域名替换与验证步骤,确保网站零损失地迁移到新服务器。

本文要点

  • 插件方式迁移:All-in-One WP Migration 操作流程
  • 手动方式迁移:mysqldump 导出、scp 传输、数据库导入
  • 迁移后修改数据库中的域名/URL
  • 更新 DNS 解析,平滑切换流量
  • 迁移后验证清单

迁移前准备

  • 在旧服务器记录当前 WordPress 版本、PHP 版本,新服务器需匹配或更高
  • 确认新服务器已部署 LNMP/LAMP 环境
  • 准备新服务器的 MySQL 数据库(库名、用户名、密码)
  • 域名解析暂时不动,待迁移验证完成后再切换

方式一:插件迁移(推荐新手)

在旧站点导出

  1. 在旧站 WordPress 后台安装并激活 All-in-One WP Migration 插件
  2. 进入插件菜单 → 导出文件
  3. 等待生成 .wpress 文件并下载到本地

在新站点导入

  1. 在新服务器部署 WordPress(仅安装,不配置)
  2. 安装并激活 All-in-One WP Migration 插件
  3. 进入插件菜单 → 导入,上传刚才下载的 .wpress 文件
  4. 等待导入完成(文件较大时可能需要数分钟)
  5. 用旧站点的管理员账号密码登录新站后台

上传大小限制

插件导入受 PHP 的 upload_max_filesizepost_max_size 限制,大型网站导出文件可能超过 128MB。在 php.ini 中提高这两个值,或使用插件的 FTP/Google Drive 方式传输大文件。

方式二:手动迁移(推荐进阶用户)

第一步:导出数据库

# 在旧服务器执行
mysqldump -u 数据库用户名 -p 数据库名 > /tmp/wordpress_backup.sql

第二步:打包网站文件

tar czf /tmp/wp_files.tar.gz -C /var/www wordpress

第三步:传输到新服务器

# 从旧服务器 scp 到新服务器(在旧服务器上执行)
scp /tmp/wordpress_backup.sql root@新服务器IP:/tmp/
scp /tmp/wp_files.tar.gz root@新服务器IP:/tmp/

第四步:在新服务器恢复文件

tar xzf /tmp/wp_files.tar.gz -C /var/www/
chown -R www-data:www-data /var/www/wordpress

第五步:在新服务器导入数据库

mysql -u 新库用户名 -p 新库名 < /tmp/wordpress_backup.sql

第六步:修改 wp-config.php

更新新服务器的数据库连接信息:

nano /var/www/wordpress/wp-config.php
# 修改 DB_NAME、DB_USER、DB_PASSWORD、DB_HOST

替换数据库中的域名/URL

WordPress 将域名存储在数据库的多个位置,迁移后若域名变更,必须全面替换,否则链接和图片会指向旧域名。推荐使用 WP-CLI

# 在新服务器 WordPress 根目录执行
wp search-replace 'https://旧域名.com' 'https://新域名.com' --all-tables
wp cache flush

序列化数据注意事项

WordPress 数据库中大量使用 PHP 序列化格式存储数据,直接用 SQL REPLACE 语句替换域名会破坏序列化字符串中的字节计数,导致数据损坏。WP-CLI 的 search-replace 命令会自动处理序列化数据,这也是推荐使用它的主要原因。

切换 DNS 解析

迁移并验证无误后,将域名 A 记录指向新服务器 IP。DNS 传播需要时间(通常几分钟至 48 小时)。在 TTL 过期前,部分用户访问的仍是旧服务器,建议在旧服务器上维持网站可访问状态,待 DNS 完全切换后再下线。

迁移后验证清单

检查项验证方法常见问题
首页正常显示浏览器访问域名白屏或 500 错误
图片正常显示检查几篇文章的图片图片 URL 仍指向旧域名
后台可登录访问 /wp-admin重定向到旧域名
固定链接有效点击文章链接Nginx 伪静态未配置
SSL 证书HTTPS 访问无警告证书需在新服务器重新申请
插件功能正常逐个测试关键插件部分插件有授权绑定

迁移完成后的收尾工作

确认迁移无误后,及时删除服务器上的临时备份文件(/tmp/*.sql/tmp/*.tar.gz),这些文件包含数据库内容,留在服务器上是安全隐患。

小结

  • 新手用 All-in-One WP Migration 插件,步骤简单,适合中小型网站
  • 手动迁移灵活度高,适合大型网站或有特殊需求的场景
  • 域名替换务必使用 WP-CLI 或 Better Search Replace,避免破坏序列化数据
  • DNS 切换后不要立即下线旧服务器,等待传播完成后再操作

常见问题

迁移后网站出现白屏怎么办?

开启 WordPress 调试模式(wp-config.php 中设置 WP_DEBUG 为 true),查看错误日志。常见原因是插件/主题与新 PHP 版本不兼容,或数据库连接配置有误。

All-in-One WP Migration 免费版有大小限制吗?

免费版导入大小限制为 512MB,超过此大小需购买付费扩展或使用手动迁移方式。

迁移后 Google Search Console 需要重新配置吗?

如果域名未变更,无需重新配置;如果更换了域名,需要在 Search Console 中提交"更改地址"申请,并更新 sitemap。

迁移会影响网站 SEO 排名吗?

纯服务器迁移(IP 变更但域名不变)对 SEO 影响极小;更换域名则需要设置 301 重定向并在 Search Console 提交更改,排名可能短期波动。