站点换服务器或换域名,正确姿势是「只读灰度」:新环境完整装好、旧站照常对外服务、你本机改 hosts 把域名指向新服务器逐项验证,全部通过后才改 DNS 解析。这样停机时间接近零,且切换后 48 小时内旧服务器仍在运行,随时可以原路退回。直接把文件拷到新机器再改解析,是所有迁移事故里最常见的起点。
先把”能退回来”这件事准备好
迁移的第一件事不是拷贝文件,而是确认有一条退路:在新环境动手之前,先把旧站的文件与数据库各留一份可恢复的快照,并且确认这份快照真的能恢复。具体的备份策略、定时配置与演练方法,本站已有专门一篇讲透,见AI 建站备份与恢复的 3-2-1 原则与演练实操,迁移前照着做一遍即可,本文不再重复。
wp-content/uploads/)。放在站点根目录之外,异地副本用私有 bucket,这是迁移期间最容易被忽略的泄露点。要搬的三层,缺一层恢复就不完整
| 层 | 内容 | 常见搬运方式 | 漏掉的后果 |
|---|---|---|---|
| 文件层 | wp-content(主题、插件、上传件) | rsync / tar 打包 / 面板打包 | 图片全裂、插件设置丢失 |
| 数据层 | MySQL / MariaDB 全库 | wp db export / mysqldump | 文章、订单、用户数据丢失 |
| 配置层 | wp-config.php、.htaccess、 Nginx vhost 、 SSL 证书、定时任务 | 手工迁移 | 新环境连不上库,直接白屏 |
配置层是最容易被漏的一层。尤其是 crontab 里的定时任务(备份脚本、发布任务、缓存预热),它们不在站点目录里,拷贝文件时不会跟着走,迁移后往往要过几天才发现”怎么没在跑了”。
导出数据库:两条命令覆盖绝大多数场景
有 WP-CLI 优先用它:
# 旧站导出
wp db export migrate-$(date +%F).sql --add-drop-table
# 新站导入(先建库建专用账号)
wp db import migrate-2026-10-14.sql
没有 WP-CLI 就显式指定字符集,避免中文变问号:
mysqldump --default-character-set=utf8mb4 \
--single-transaction --quick \
-u dbuser -p dbname > migrate.sql
--single-transaction 能在不锁表的前提下拿到一致性快照,导出期间站点仍可正常写入,日更站点尤其需要。
换域名:必须做序列化安全的替换
WordPress 把站点地址写进了数据库(wp_options 的 home / siteurl,以及正文里的绝对链接)。直接导入到新域名会跳转回旧站。用 WP-CLI 替换:
# 先干跑看影响范围
wp search-replace 'https://old.com' 'https://new.com' --all-tables --dry-run
# 确认无误再执行
wp search-replace 'https://old.com' 'https://new.com' --all-tables
REPLACE() 直接改域名。 PHP 序列化字符串里存了长度字段,改完长度不更新会导致小工具、主题设置整块失效——这是迁移后”后台设置全空”的头号原因。如果这次迁移同时改了 URL 结构,那么替换域名只是第一步,旧地址到新地址的跳转规则属于另一件事,需要按网站改版的 301 重定向迁移清单单独处理,否则排名会在几周内慢慢流失。
只读灰度:六步走完再切解析
- 新环境安装同版本 WordPress 与同版本 PHP,创建数据库与专用账号,记下账号密码备用。
- 同步文件层:rsync 或打包上传 wp-content,注意保留文件权限与属主。
- 导入数据库,用 wp search-replace 替换域名与路径,后台”设置 → 固定链接”点一次保存重建规则。
- 本机改 hosts 把域名指向新服务器 IP,逐项验证:首页、内页、后台登录、上传图片、发测试文章、提交表单、下单(如有电商)。
- 验证通过后,提前 24 小时把 DNS 的 TTL 调到 300 秒,等原 TTL 过期,再改解析指向新 IP 。
- 切换后旧服务器保持运行 48 小时再下线,期间持续观察新站错误日志与后台站点健康。
hosts 灰度的关键
Windows 改 C:\Windows\System32\drivers\etc\hosts,macOS / Linux 改 /etc/hosts,加一行:
1.2.3.4 www.example.com example.com
这样只有你本机访问新服务器,其他用户仍走旧站——这就是”只读灰度”的核心。验证时不要只看首页能打开,务必覆盖后台上传、表单提交、邮件发送这几个最容易在新环境失效的动作。
四个高频故障速查
迁移故障速查表(点击展开)
- 首页正常、内页 404:固定链接未重建。后台”设置 → 固定链接”点一次保存,或检查 Nginx / Apache 的 rewrite 规则是否随 vhost 一起迁移。
- 后台登录后又跳回登录页:cookie 域或
home/siteurl不一致,检查wp_options两个值。 - 中文乱码:导出或建库字符集不一致。确认导出用
utf8mb4,新库建库语句同样是utf8mb4。 - 图片 404 但文件在:权限或属主不对,Web 进程用户读不到。执行
chown -R www-data:www-data wp-content/uploads后重试。
切换之后要复验的三件事
新环境的防护、性能、权限都会变化,建议切换完成后各复验一次:
- 防护:确认 WAF 规则与频率限制随 vhost 一起迁移,参考AI 建站的防爬与限流配置。
- 性能:PHP 版本、 OPcache 、对象缓存的差异会让同一套代码跑出完全不同的分数,重跑一次指标对照Core Web Vitals 的 LCP 、 INP 、 CLS 三条线。
- 权限:带会员或付费内容的站点,确认会员系统的付费墙在切换窗口内没有漏放权限。
迁移需要停机吗?
直接用主机面板的一键迁移插件可以吗?
DNS 切换要提前多久准备?
同域名换服务器,也要做 search-replace 吗?
迁移会影响 SEO 排名吗?
一句话收尾:迁移的风险不由”搬得对不对”决定,而由”能不能退回去”决定。把快照、灰度验证、 48 小时回滚窗口这三件事做成固定流程,换服务器就不再是一次冒险。









评论 (0)