博客原来放在虚拟主机上,一年几十块,但限制多:不能装 Redis,PHP 版本固定,偶尔还抽风。趁黑五买了台 VPS,记录一下迁移过程。
准备
- VPS:1 核 1G,Debian 10
- 备份原站:文件 + 数据库
- 域名 DNS 的 TTL 提前调小,方便切换
环境搭建
# 更新系统
apt update && apt upgrade -y
# 装 Nginx + PHP + MySQL
apt install nginx php-fpm php-mysql mysql-server -y
# 装 phpMyAdmin 或者用命令行导数据
迁移数据
# 旧站导出
mysqldump -u user -p dbname > blog.sql
tar czf blog-files.tar.gz /path/to/wordpress
# 新站导入
mysql -u user -p dbname < blog.sql
tar xzf blog-files.tar.gz -C /var/www/
配置 Nginx
server {
listen 80;
server_name www.zhengzhiwei.vip/;
root /var/www/wordpress;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
}
踩的坑
- 文件权限:Nginx 用户是 www-data,WordPress 目录要给对权限,否则上传失败
- 数据库连接:wp-config.php 里的 DB_HOST 要改
- 固定链接 404:Nginx 的 try_files 没配
- DNS 切换后本地 DNS 缓存没更新,等了一会
迁移后
- 配了 HTTPS(Let's Encrypt)
- 装了 Redis 做对象缓存
- 配了自动备份到对象存储
- 加了监控告警
VPS 自由度高,但什么都要自己管。适合愿意折腾的人。

Comments 3 条评论
固定链接 404 我也遇到过
DB_HOST 忘了改,折腾半天
迁完记得先把 DNS TTL 调小