网站迁移零停机:从旧服务器搬家到新服务器的完整指南

zheng头像
zheng 2026-07-16 09:00
楼主

> 换服务器是每个站长都会遇到的事。旧 VPS 快到期了、配置不够了、或者就是想换个更好的。最怕的就是迁移过程中网站打不开、数据丢失。其实只要按流程来,完全可以在线无损搬家。

---

## 迁移前的准备

先搞清楚要搬什么:

```bash
# 确认当前网站目录
echo $PWD && ls -la

# 确认数据库位置和大小
ls -lh /mnt/mmcblk1p1/typecho/usr/typecho.db

# 确认 Web 服务运行用户
ps aux | grep nginx
```

---

## 第一步:在新服务器上搭好环境

```bash
apt update
apt install nginx php-fpm php-sqlite3 sqlite3 -y
systemctl start nginx php7.4-fpm
systemctl enable nginx php7.4-fpm
```

---

## 第二步:同步网站文件

使用 rsync 增量同步:

```bash
rsync -avzP \
-e "ssh -p 2222" \
/var/www/html/ \
root@新服务器IP:/var/www/html/
```

- -a:归档模式,保留权限
- -v:显示详细信息
- -z:压缩传输
- -P:显示进度 + 支持断点续传

---

## 第三步:迁移数据库

SQLite 最简单,直接复制文件:

```bash
# 旧服务器上
tar -czf /tmp/db_backup.tar.gz /mnt/mmcblk1p1/typecho/usr/typecho.db
scp -P 2222 /tmp/db_backup.tar.gz root@新服务器IP:/tmp/

# 新服务器上
tar -xzf /tmp/db_backup.tar.gz -C /
chown www-data:www-data /mnt/mmcblk1p1/typecho/usr/typecho.db
```

---

## 第四步:更新 DNS 解析

修改域名 DNS 指向新服务器 IP。注意:
- TTL 提前 24 小时改小(600秒),切换几乎无感知
- 改完 DNS 后保留旧服务器 3 到 7 天观察

---

## 迁移检查清单

- [ ] 网站文件已完整同步
- [ ] 数据库已迁移并确认数据完整
- [ ] 文件权限正确(www-data 用户可读写)
- [ ] Nginx 配置正确,能正常访问
- [ ] PHP 版本一致
- [ ] SSL 证书已在新服务器配置
- [ ] DNS 解析已更新
- [ ] 旧服务器保留一周观察

---

按这个流程走,网站迁移就像搬个家,东西不少但不会丢,过程复杂但不会断。

个人云盘 NextCloud 搭建指南:数据掌握在自己手里 安卓手机变废为宝:旧手机别扔,它还有 8 种你不知道的玩法

最新回复

暂无回复,来说两句吧

发表评论

站点总访问量:2817