首页 › 博客 › 文章

WordPress 换服务器迁移:不停机搬家步骤

WordPress 换服务器迁移:不停机搬家步骤

WordPress 换服务器迁移要做到不停机,核心是在新服务器先完整跑通再切 DNS。判断做对的标准是:切换前用 hosts 预演全站正常,切换后表单、支付、定时任务均无异常,且旧服务器保留可秒级回退。

准备:打包文件与数据库

迁移起点是把旧站的文件与数据库完整打包。2026 年主流环境多运行在 PHP 8.2 及以上,打包时不要遗漏 wp-content 之外的隐藏文件。

打包网站文件

进入 WordPress 根目录,排除缓存目录以减小体积。常见路径为 /var/www/html 或 /home/user/public_html。

tar -czpf /backup/wp-files-$(date +%F).tar.gz 
  --exclude='wp-content/cache/*' 
  --exclude='wp-content/uploads/cache/*' 
  -C /var/www/html .

若使用 WP-CLI,可先确认核心版本与路径:

wp core version --path='/var/www/html'
wp option get home --path='/var/www/html'

导出数据库

用 mysqldump 导出并压缩,避免大表锁表过久:

mysqldump -u root -p --single-transaction --quick 
  --routines --triggers wordpress_db 
  | gzip > /backup/wp-db-$(date +%F).sql.gz

踩坑:若站点使用 utf8mb4 且含 emoji,确认导出未指定旧字符集;若用 WP-CLI,可用 wp db export 替代,但大库建议仍走 mysqldump。

把文件与数据库传到新服务器后,先本地解压校验。相关命令习惯可参考 WP-CLI 常用命令:把重复的运维动作变成一行命令。

获取报价

邮箱 + 需求 + 预算区间,24 小时内回复报价。

实施步骤:新环境先跑通再切解析

  1. 在新服务器还原文件到目标目录,并修正属主:chown -R www-data:www-data。
  2. 创建空库并导入 SQL:gunzip 后 mysql 导入,或用 wp db import。
  3. 修改 wp-config.php 中的 DB_NAME、DB_USER、DB_PASSWORD、DB_HOST 指向新库。
  4. 用 WP-CLI 做域名替换(暂用旧域名),确认站点可渲染:wp search-replace ‘//old.com’ ‘//new-tmp.com’ –dry-run 后执行。
  5. 配置 Nginx/Apache 虚拟主机,先不绑正式域名,用临时域名或 IP 访问验证。
  6. 确认新环境 PHP 扩展、Redis、SSL 与旧站一致,再进入 hosts 预演。

2026 年 PHP 8.2 已是基线,若旧站仍在 8.0,需先完成兼容性处理,详见 升级到 PHP 8.2:兼容性排查与常见报错。

Web 服务器配置片段

Nginx 片段示例:

server {
    listen 80;
    server_name new-tmp.example.com;
    root /var/www/wordpress;
    index index.php;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ .php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

验证:curl -I 新地址应返回 200,且 wp-login.php 可打开。

hosts 预演

在切换 DNS 前,用本地 hosts 把正式域名指向新服务器 IP,做全链路预演。

修改 hosts

macOS/Linux 路径 /etc/hosts,Windows 为 C:WindowsSystem32driversetchosts:

203.0.113.10  www.example.com
203.0.113.10  example.com

保存后执行 dscacheutil -flushcache(macOS)或 systemd-resolve --flush-caches(Linux)。

预演检查项

  • 前台首页、文章页、分类页是否正常渲染。
  • 登录后台,检查媒体库缩略图是否生成。
  • 提交一次联系表单或测试订单,确认写库到新实例。
  • 查看 wp-content/debug.log 是否有 PHP Notice/Fatal。

踩坑:若站点接了 CDN,预演时先暂停 CDN 或设置源站为旧 IP 的旁路,否则请求不会到新机。缓存规则可参考 WordPress 接 CDN:缓存规则、回源与清缓存策略。

切换后的检查与回退

确认预演无误后,把 DNS 的 A 记录 TTL 提前降到 300 秒,再修改解析指向新服务器。

切换后验证

若此时发现问题,立即回退。

回退方法

把 DNS A 记录改回旧服务器 IP,因 TTL 已设 300 秒,多数用户在 5 分钟内恢复。旧服务器在切换后至少保留 72 小时不销毁。若数据库有双向写入风险,回退后用旧库覆盖新库即可。

对于需要专业保障的团队,可直接交付给 WordPress 网站迁移 服务,避免业务中断。

常见问题

常见问题

迁移后图片全部 404 怎么办?

多为 uploads 未完整拷贝或属主错误。用 rsync 补传并 chown 到 Web 用户,再刷新固定链接。

hosts 预演正常但切 DNS 后白屏?

检查新机 PHP-FPM 是否监听正确 socket,以及 opcache 是否缓存了旧路径,重启 fpm 与 opcache 后重试。

定时任务在迁移后不执行?

确认新服务器系统 cron 或外部触发正常,参考 WordPress 定时任务不执行?WP-Cron 的真实问题与替代方案。

动作清单

  1. 用 tar + mysqldump 完整备份文件与数据库。
  2. 在新服务器还原并先用临时域名跑通。
  3. 通过 hosts 预演全站功能与写库。
  4. 降 TTL 后切 DNS,完成后验证 cron 与 HTTPS。
  5. 旧服务器保留 72 小时,异常时改回 A 记录回退。

需要零中断迁移?查看 WordPress 网站迁移 服务,我们提供全流程护航。

参考资料与延伸阅读

WPDaiwei

WPDaiwei-专业Wordpress网站定制开发提供商

需要 WordPress 开发服务?

24 小时内免费出方案与报价,国内国外都接单。

QQ