【保姆级教程】续费太贵想换机?WordPress 网站无损迁移全流程,顺便聊聊灰白云
帖子正文:
声明:本文为个人折腾记录,无任何利益关系,文末体验仅代表个人观点,大家理性看待。
佬友们好。去年低价上车的一台服务器最近到期了,一看续费价格直接翻倍,果断决定换机。但网站跑了一年,文章、评论、图片全在上面,弃站太亏,迁移又怕翻车。
折腾了一圈,把 WordPress 完整搬到了新家——灰白云的香港 CN2 GIA,全程没停机、没丢一条数据,前后大概 30 分钟。把完整流程整理出来,给同样被续费价背刺的佬友参考。
一、先搞懂:WordPress 网站到底由什么组成
很多人不敢换机,是怕“数据丢了”。其实搞清楚结构就知道,迁移很简单:
- 网站文件:主题、插件、上传的图片(
/www/wwwroot/站点目录) - 数据库:所有文章、评论、设置(这个才是命根子)
- 域名解析:让域名指向哪台服务器
- HTTPS 证书:跟域名+服务器绑定,换机要重签
迁移的本质:前两样搬过去,后两样重新指。就这么回事。
二、第 0 步:备份(后悔药,必做)
SSH 登录旧服务器:
# 备份网站文件
tar -czf /backup/site_$(date +%F).tar.gz /www/wwwroot/myblog.com
# 备份数据库
mysqldump -uroot -p --single-transaction --default-character-set=utf8mb4 wp_myblog > /backup/db_$(date +%F).sql
备份文件务必下载一份到本地,别只留在旧机上。
三、第 1 步:新机装环境
新旧机 PHP / MySQL 版本尽量一致,能避开 90% 的兼容坑。宝塔一键装 LNMP 就行,命令行党:
yum install -y epel-release nginx php php-fpm php-mysql php-gd php-mbstring php-xml mariadb-server
systemctl enable --now nginx php-fpm mariadb
别忘先去云控制台安全组放行 80/443,新手第一坑。
四、第 2 步:搬文件(rsync 真香)
推荐 rsync,断点续传 + 增量同步,传一半断了重跑接着传:
rsync -avz --progress -e ssh root@旧机IP:/www/wwwroot/myblog.com/ /www/wwwroot/myblog.com/
传完修一下权限,不然评论/上传会报错:
chown -R www:www /www/wwwroot/myblog.com
chmod -R 775 /www/wwwroot/myblog.com/wp-content
五、第 3 步:搬数据库
新机建库(字符集务必 utf8mb4,否则中文乱码):
CREATE DATABASE wp_myblog DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '你的密码';
GRANT ALL PRIVILEGES ON wp_myblog.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
导入:
mysql -uroot -p wp_myblog < /backup/db_2026-09-08.sql
六、第 4 步:改 wp-config.php
打开站点根目录的 wp-config.php,把 DB_NAME / DB_USER / DB_PASSWORD 改成新机的数据库账号。改完这步,新机上的网站数据就已经“活”了。
七、第 5 步:切解析前,先 hosts 预检(重点技巧)
新手最大的坑:直接改解析然后干等,以为网站挂了,其实是 DNS 还没生效。
正确姿势是先用 hosts 让你自己电脑偷偷访问新机测试:
Windows 编辑 C:\Windows\System32\drivers\etc\hosts,加一行:
新机IP myblog.com
然后浏览器访问自己的域名——这时你看到的已经是新机了。逐项检查:文章页、图片、后台登录、发一篇文章测试写入。
都正常后,去域名商把 TTL 调到 300 秒(提前调,等生效),再改 A 记录指向新机 IP。测试完记得删掉 hosts 那行。
旧机先别关,保留 2~3 天双跑,确认新站稳定再释放,这才是零风险姿势。
八、第 6 步:证书 + 伪静态收尾
证书重签(Let’s Encrypt 免费):
certbot --nginx -d myblog.com -d www.myblog.com
迁移后文章页 404 的话,就是伪静态丢了,Nginx 配置里确认有:
location / {
try_files $uri $uri/ /index.php?$args;
}
九、翻车点速查表
| 现象 | 原因 | 解法 |
|---|---|---|
| 数据库连接错误 | wp-config 没改对 | 核对库名/账号/密码 |
| 图片全挂 | uploads 没传全 | rsync 重跑增量 |
| 中文乱码 | 字符集不一致 | 统一 utf8mb4 重导 |
| 文章页 404 | 伪静态丢失 | 补规则+刷新固定链接 |
| 一直访问旧站 | DNS 缓存 | flushdns + 等 TTL |
| https 报不安全 | 证书没重签 | certbot 重来 |
十、关于灰白云,简单说两句
这次的新家就是灰白云( https://idc.hbyzn.cn/ ),选它主要三点:
- 线路:香港 CN2 GIA,迁移完我这边三网 ping 平均 30ms 出头,晚高峰丢包基本测不出来,比之前那台普线机器稳不少;
- 续费价格:首年续费同价,不存在“低价上车、续费背刺”那一套,这也是我这次换机的直接原因;
- 配置:个人博客 2 核 2G 完全够用,跑完 LNMP + WordPress 内存还有余量。
不是恰饭,纯个人体验分享,佬友们按需选择,买之前多对比总没错。
十一、总结
四个关键词:备份先行、先搬后切、hosts 预检、双跑收尾。学会这套路,以后换机、升配、换机房都不虚。
有迁移翻过车的佬友欢迎评论区交流,一起填坑。