WordPress迁移到香港VPS完整教程:从虚拟主机/阿里云无缝搬家零停机
网站从共享虚拟主机或国内云服务器迁移到香港VPS,是很多站长在业务增长后的必经之路。迁移的核心挑战是:如何在不中断现有服务的情况下完成搬家?本文提供一套零停机迁移方案。
一、迁移前准备清单
- ✅ 新香港VPS已开通,环境已配置(Nginx + PHP + MySQL)
- ✅ 新服务器已安装宝塔面板或1Panel,方便管理
- ✅ 记录当前域名DNS的TTL值,迁移前将TTL临时改为300秒(5分钟)
- ✅ 已备份原站所有文件和数据库(这是最重要的前提)
- ✅ 记录原站的PHP版本、已安装的扩展列表
二、方案A:插件一键迁移(推荐新手)
使用 All-in-One WP Migration 或 Duplicator Pro 插件,适合站点文件在1GB以内的情况。
All-in-One WP Migration步骤
- 原站安装插件 → All-in-One WP Migration → 导出 → 导出文件(下载.wpress文件)
- 新VPS安装WordPress + 同款插件
- 新站后台 → All-in-One WP Migration → 导入 → 上传刚才下载的.wpress文件
- 导入完成后,修改新站数据库中的siteurl和home为新服务器IP,测试访问
- 确认新站一切正常后,修改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切换方案
这是迁移中最关键的步骤,目标是让新旧服务器同时在线,切换过程用户无感知:
- 提前48小时:将DNS的TTL改为300秒(原来可能是3600秒或更长)
- 迁移完成后:在新服务器上用hosts文件测试,确认新站完全正常
- 保持原站运行:暂时不要关闭原服务器
- 修改DNS:将A记录改为新服务器IP,等待5~10分钟(新TTL)生效
- 观察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,降低迁移风险。
版权声明:
作者:后浪云
链接:https://idc.net/help/442730/
文章版权归作者所有,未经允许请勿转载。
THE END
