共享主机迁移到VPS完整教程:零停机迁移WordPress

什么时候该从共享主机迁移到 VPS?

以下任意一条出现,就说明共享主机开始成为瓶颈:

  • 月访问量超过 10–15 万,页面加载变慢
  • 收到主机商的”资源超限”警告邮件
  • 在流量高峰期(促销活动)网站明显卡顿甚至宕机
  • 需要安装特定软件(如自定义 PHP 扩展)
  • 开始管理 5 个以上网站,共享主机套餐费用不划算

迁移前的准备工作

1. 选择 VPS 服务商

推荐选项:

服务商 最低月价 特点
Vultr $6 性价比极高,全球节点多
DigitalOcean $6 文档最完整,新手友好
Cloudways $11 不需要自己配置服务器,推荐新手

如果你不懂 Linux 服务器管理,强烈推荐选 Cloudways 而非纯 VPS。Cloudways 底层是 DO/Vultr,但把服务器配置都帮你做好了,不需要手动安装 LNMP。

2. 准备 VPS 服务器环境

如果选纯 VPS(如 Vultr):

需要安装 LNMP 或 LAMP 环境。推荐用 宝塔面板(中文界面),安装步骤:

# Vultr Ubuntu 22.04 服务器,SSH 连接后执行:
wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh
sudo bash install.sh ed8484bec

宝塔面板安装完成后:
1. 访问 http://服务器IP:8888,设置管理员密码
2. 安装推荐套件:LNMP(Nginx + MySQL + PHP 8.1)
3. 等待安装完成(约5–10分钟)

如果选 Cloudways:

注册后直接在面板创建”应用”,选择 WordPress,5分钟完成部署,跳过上面所有步骤。

3. 在新服务器创建 WordPress 站点

  • 宝塔面板:网站 → 添加站点,填入域名
  • Cloudways:Applications → Add Application → WordPress

4. 备份当前网站

必须做,不可跳过。

推荐用 All-in-One WP Migration 插件(免费版最大迁移 512MB):

  1. 在旧主机的 WordPress 后台安装 “All-in-One WP Migration”
  2. All-in-One WP Migration → Export → 导出到文件
  3. 下载导出的 .wpress 文件到本地

如果网站超过 512MB,改用 WPvivid Backup 或直接手动迁移(见下文)。

迁移步骤

方法一:使用迁移插件(推荐新手)

步骤:

  1. 在新 VPS 的 WordPress 上安装 “All-in-One WP Migration”
  2. All-in-One WP Migration → Import → 上传之前导出的 .wpress 文件
  3. 等待导入完成(根据文件大小需要5–30分钟)
  4. 完成后,登录新 WordPress 后台(临时域名)验证内容是否完整

方法二:手动迁移(适合大型网站)

第一步:迁移文件

通过 FTP 或 SSH 将旧主机的 wp-content/ 目录完整下载,上传到新服务器的对应位置。

# 使用 rsync 直接在服务器间传输(速度更快)
rsync -avz --progress user@旧主机IP:/home/user/public_html/wp-content/ /www/wwwroot/新域名/wp-content/

第二步:迁移数据库

在旧主机 cPanel → phpMyAdmin → 导出数据库(SQL格式)。

在新服务器上传并导入:

mysql -u 数据库用户名 -p 数据库名 < 备份文件.sql

或通过宝塔面板的 phpMyAdmin 图形界面导入。

第三步:修改 wp-config.php

新服务器的数据库连接信息不同,需要更新:

define('DB_NAME', '新数据库名');
define('DB_USER', '新数据库用户名');
define('DB_PASSWORD', '新数据库密码');
define('DB_HOST', 'localhost');

第四步:更新数据库中的域名

如果临时域名和正式域名不同,需要替换数据库中的 URL:

UPDATE wp_options SET option_value = 'https://你的正式域名' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://你的正式域名' WHERE option_name = 'home';

或使用 Better Search Replace 插件一键替换。

测试新服务器(切换 DNS 前)

修改本机 hosts 文件,将域名临时指向新服务器 IP,只有你自己能看到新版本,其他访客看到的还是旧网站(零停机的核心)。

Windows hosts 文件位置: C:\Windows\System32\drivers\etc\hosts

添加一行:

新服务器IP  你的域名

然后在浏览器访问你的域名,如果显示的是新服务器的 WordPress,说明迁移成功。

验证检查清单:
– [ ] 首页正常加载
– [ ] 博客文章可以正常访问
– [ ] 表单提交功能正常
– [ ] 图片全部显示正常
– [ ] 后台能正常登录
– [ ] 插件功能正常

切换 DNS(正式上线)

测试通过后,修改域名 DNS 将其指向新服务器 IP:

  1. 登录域名商后台(Namecheap/Cloudflare/万网等)
  2. 找到该域名的 A 记录
  3. 将 IP 地址改为新 VPS 的 IP
  4. 保存,等待 DNS 生效(通常5分钟–2小时)

DNS 生效后,hosts 文件中的测试记录可以删除。

迁移后优化

切换完成后,立即做以下配置:

  1. 配置 SSL 证书:在宝塔面板申请 Let’s Encrypt 免费 SSL
  2. 安装缓存
  3. Nginx 服务器 → FastCGI Cache 或 Redis Object Cache
  4. 推荐安装 WP Rocket($59/年,值得)
  5. 配置 Nginx 规则:WordPress 固定链接需要特定 rewrite 规则
  6. 设置自动备份:宝塔面板 → 计划任务 → 添加备份任务
  7. 安全加固:修改 SSH 端口、禁用 root 登录、安装 fail2ban

迁移失败常见问题

Q:迁移后图片不显示怎么办?
检查文件权限,wp-content/uploads/ 目录权限应设为 755,文件为 644。

Q:迁移后固定链接404怎么办?
WordPress 后台 → 设置 → 固定链接 → 重新保存(不改任何东西,直接点保存)。如果还不行,检查 Nginx/Apache 的 rewrite 配置。

Q:迁移后乱码怎么办?
数据库导入时确保字符集为 utf8mb4,导入命令加参数:

mysql --default-character-set=utf8mb4 -u user -p dbname < backup.sql

总结

从共享主机迁移到 VPS 是 WordPress 网站成长的必经之路。整个过程的核心原则:

  1. 先在新服务器测试好,再切换 DNS
  2. 做好备份,任何时候都能回滚
  3. 不懂 Linux 的话,选 Cloudways 而非纯 VPS

相关阅读:Cloudways托管云主机评测 · Vultr VPS WordPress搭建教程