无论是更换 VPS 服务商、升级套餐,还是更换域名,WordPress 网站迁移都是站长必须面对的操作。本文提供两种迁移方式:插件一键迁移(适合新手)和手动迁移(适合进阶用户),并详细说明迁移后的域名替换与验证步骤,确保网站零损失地迁移到新服务器。
本文要点
- 插件方式迁移:All-in-One WP Migration 操作流程
- 手动方式迁移:mysqldump 导出、scp 传输、数据库导入
- 迁移后修改数据库中的域名/URL
- 更新 DNS 解析,平滑切换流量
- 迁移后验证清单
迁移前准备
- 在旧服务器记录当前 WordPress 版本、PHP 版本,新服务器需匹配或更高
- 确认新服务器已部署 LNMP/LAMP 环境
- 准备新服务器的 MySQL 数据库(库名、用户名、密码)
- 域名解析暂时不动,待迁移验证完成后再切换
方式一:插件迁移(推荐新手)
在旧站点导出
- 在旧站 WordPress 后台安装并激活 All-in-One WP Migration 插件
- 进入插件菜单 → 导出 → 文件
- 等待生成 .wpress 文件并下载到本地
在新站点导入
- 在新服务器部署 WordPress(仅安装,不配置)
- 安装并激活 All-in-One WP Migration 插件
- 进入插件菜单 → 导入,上传刚才下载的 .wpress 文件
- 等待导入完成(文件较大时可能需要数分钟)
- 用旧站点的管理员账号密码登录新站后台
上传大小限制
插件导入受 PHP 的 upload_max_filesize 和 post_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 提交更改,排名可能短期波动。