WordPress迁移到香港VPS完整教程:从虚拟主机/阿里云无缝搬家零停机

网站从共享虚拟主机或国内云服务器迁移到香港VPS,是很多站长在业务增长后的必经之路。迁移的核心挑战是:如何在不中断现有服务的情况下完成搬家?本文提供一套零停机迁移方案。

一、迁移前准备清单

  • ✅ 新香港VPS已开通,环境已配置(Nginx + PHP + MySQL)
  • ✅ 新服务器已安装宝塔面板或1Panel,方便管理
  • ✅ 记录当前域名DNS的TTL值,迁移前将TTL临时改为300秒(5分钟)
  • ✅ 已备份原站所有文件和数据库(这是最重要的前提)
  • ✅ 记录原站的PHP版本、已安装的扩展列表

二、方案A:插件一键迁移(推荐新手)

使用 All-in-One WP MigrationDuplicator Pro 插件,适合站点文件在1GB以内的情况。

All-in-One WP Migration步骤

  1. 原站安装插件 → All-in-One WP Migration → 导出 → 导出文件(下载.wpress文件)
  2. 新VPS安装WordPress + 同款插件
  3. 新站后台 → All-in-One WP Migration → 导入 → 上传刚才下载的.wpress文件
  4. 导入完成后,修改新站数据库中的siteurl和home为新服务器IP,测试访问
  5. 确认新站一切正常后,修改DNS指向新IP,等待生效

免费版上传限制为512MB,大站建议升级Pro版或使用方案B。

三、方案B:手动迁移(推荐大站/精确控制)

第一步:打包原站文件

# 在原服务器上执行
cd /var/www/html  # 或原站根目录
tar -czf /tmp/wordpress-files.tar.gz .

# 传输到新服务器(scp方式)
scp /tmp/wordpress-files.tar.gz root@新服务器IP:/tmp/

第二步:导出原站数据库

# 原服务器上导出数据库
mysqldump -u 数据库用户名 -p 数据库名 \
  --single-transaction \
  --routines \
  --triggers \
  > /tmp/wordpress-db.sql

# 传输到新服务器
scp /tmp/wordpress-db.sql root@新服务器IP:/tmp/

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

# 新服务器上解压文件
mkdir -p /var/www/html
tar -xzf /tmp/wordpress-files.tar.gz -C /var/www/html/

# 设置正确权限
chown -R www-data:www-data /var/www/html
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;

第四步:在新服务器恢复数据库

# 创建新数据库和用户
mysql -u root -p << EOF
CREATE DATABASE wordpress_new CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wpuser'@'localhost' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON wordpress_new.* TO 'wpuser'@'localhost';
FLUSH PRIVILEGES;
EOF

# 导入数据
mysql -u wpuser -p wordpress_new < /tmp/wordpress-db.sql

第五步:更新wp-config.php

nano /var/www/html/wp-config.php

# 修改数据库连接信息
define('DB_NAME', 'wordpress_new');
define('DB_USER', 'wpuser');
define('DB_PASSWORD', '你的密码');
define('DB_HOST', 'localhost');

四、更新数据库中的旧URL

原站如果是 http://oldhost.com,新站是 https://newdomain.com,需要替换数据库中所有旧URL:

# 安装WP-CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar && mv wp-cli.phar /usr/local/bin/wp

# 使用WP-CLI搜索替换URL(处理序列化数据,比直接SQL更安全)
cd /var/www/html
wp search-replace 'http://oldhost.com' 'https://newdomain.com' --all-tables

五、零停机DNS切换方案

这是迁移中最关键的步骤,目标是让新旧服务器同时在线,切换过程用户无感知:

  1. 提前48小时:将DNS的TTL改为300秒(原来可能是3600秒或更长)
  2. 迁移完成后:在新服务器上用hosts文件测试,确认新站完全正常
  3. 保持原站运行:暂时不要关闭原服务器
  4. 修改DNS:将A记录改为新服务器IP,等待5~10分钟(新TTL)生效
  5. 观察24小时:新站流量稳定后,再关闭原服务器

用hosts文件在本地测试新站

# Windows: C:\Windows\System32\drivers\etc\hosts
# Mac/Linux: /etc/hosts
# 添加以下行(不影响DNS,仅本机生效)
新服务器IP  yourdomain.com www.yourdomain.com

六、迁移后必做检查清单

  • ✅ 网站前台各页面正常显示,无404
  • ✅ WordPress后台可以正常登录
  • ✅ 媒体文件(图片)正常加载
  • ✅ 表单提交、评论等功能正常
  • ✅ SSL证书已安装,HTTPS正常访问
  • ✅ 在Google Search Console提交新的Sitemap
  • ✅ 更新Google Analytics等第三方工具的域名设置
  • ✅ 确认所有外部链接(CDN、邮件服务等)使用新配置

七、常见迁移报错解决

报错信息原因解决方法
Error establishing database connection数据库配置错误检查wp-config.php中的DB_HOST/USER/PASSWORD
404错误(固定链接失效)Nginx未配置rewrite规则后台设置→固定链接→重新保存一次
图片不显示旧URL未替换重新执行wp search-replace命令
后台登录跳转循环siteurl/home值错误直接修改数据库wp_options表对应字段

八、总结

WordPress迁移到香港VPS的全过程通常在2~4小时内完成,零停机方案可将用户感知的中断时间压缩到几分钟以内。迁移完成后,访问速度和稳定性都会有显著提升。IDC.Net的香港VPS首月10元起,非常适合先建好新环境测试,再切换DNS,降低迁移风险。

THE END