宝塔面板如何迁移站点数据|服务器更换(站点批量转移教程)

发布时间:2026-07-23 17:27

当服务器即将到期、性能不足或需要更换机房时,将整个宝塔面板上的所有站点数据迁移到新服务器是一项必须掌握的核心技能。很多新手直接打包下载网站文件,却忽略了数据库、伪静态规则、SSL证书和计划任务,导致迁移后网站无法访问。下面这套教程将手把手带你完成从旧服务器打包、传输到新服务器恢复的全过程,确保所有站点完整迁移,零遗漏。

---

### 前置准备

在开始操作之前,请确保以下条件全部满足,否则迁移过程中可能出现中断或数据丢失。

1. **新旧服务器均安装了宝塔面板**:版本建议在7.9以上,且均为最新稳定版。如果旧面板版本过低,请先升级。

2. **新服务器环境已搭建**:确保新服务器上的PHP版本、MySQL版本、Nginx或Apache与旧服务器保持一致或兼容。你可以在旧面板左侧“软件商店”中查看已安装的运行环境版本。

3. **新服务器面板已登录**:获取新服务器的IP地址、宝塔面板登录地址、用户名和密码。

4. **准备SSH工具**:推荐使用Xshell、Putty或FinalShell,用于执行命令。如果不会使用SSH,可以直接使用宝塔面板自带的“终端”功能(在左侧菜单栏)。

5. **确认磁盘空间**:旧服务器上的网站文件、数据库文件、备份文件的总大小,必须小于新服务器剩余磁盘空间。可以在旧面板“首页”查看磁盘使用情况。

6. **关闭网站访问**(强烈建议):为了数据一致性,迁移期间最好暂时关闭旧服务器上的网站。可以在旧面板“网站”列表中,逐个点击“停止”,或通过“设置”中的“网站状态”关闭。

---

### 分步操作步骤

#### 1. 在旧服务器上创建完整备份

这一步不是手动去下载文件,而是使用宝塔自带的备份功能,它会自动打包网站文件、数据库、配置文件,并且保留目录结构。

1. 登录旧服务器宝塔面板,点击左侧菜单栏“计划任务”。

2. 点击右上角“添加任务”。

3. 任务类型选择“**备份网站**”,任务名称填写“全站备份-网站”。

4. 在“选择网站”下拉框中,勾选“**全选**”(或者只勾选你需要迁移的站点,建议全选)。

5. “备份到”选择“**本地备份**”(不要选远程存储,否则后面步骤复杂)。

6. 点击“添加任务”后,立即点击该任务右侧的“**执行**”按钮。

7. 等待执行完成。执行过程中,可以在“任务列表”中看到进度条。完成后,状态会显示“成功”。

8. **重复上述步骤,再次添加一个任务**:任务类型选择“**备份数据库**”,选择“全选”所有数据库,同样备份到本地,然后执行。

9. **检查备份文件**:点击左侧“文件”,进入目录 `/www/backup/site` 和 `/www/backup/database`。确认里面生成了以 `.tar.gz` 或 `.zip` 结尾的备份文件,并且文件大小不为0。

> **为什么需要分别备份网站和数据库?** 因为宝塔的“备份网站”功能默认不备份数据库(除非在设置里手动勾选,但容易遗漏),而“备份数据库”专门针对MySQL/MariaDB。分开备份最稳妥。

#### 2. 将备份文件打包并传输到新服务器

备份文件在旧服务器上,现在需要把它们整体打包成一个文件,然后通过SSH传输到新服务器。使用宝塔面板自带的“终端”功能即可操作。

1. 在旧服务器宝塔面板中,点击左侧“终端”。

2. 输入以下命令,进入备份目录并打包所有备份文件(注意命令中的空格和点号):

```bash

cd /www/backup

tar -czf all_backup.tar.gz site database

```

- `tar -czf`:创建压缩包。

- `all_backup.tar.gz`:压缩包文件名,可以自定义。

- `site database`:表示将 site 和 database 这两个文件夹打包进去。

3. 等待打包完成。如果备份文件很大(比如超过10GB),可能需要几分钟。打包完成后,输入 `ls -lh` 查看生成的 `all_backup.tar.gz` 文件大小,确认无误。

4. **现在开始传输到新服务器**。在终端中继续输入以下命令(需要替换其中的IP地址、端口、用户名和路径):

```bash

scp -P 22 /www/backup/all_backup.tar.gz root@新服务器IP:/www/

```

- `-P 22`:新服务器的SSH端口,默认为22,如果不是请改为实际端口(大写P)。

- `root@新服务器IP`:将 `新服务器IP` 替换为你的新服务器公网IP。

- `:/www/`:表示将文件传输到新服务器的 `/www/` 目录下。

- 执行后,系统会提示输入新服务器root密码。输入密码时不会显示任何字符,输入完按回车即可。

5. **等待传输完成**。传输速度取决于你的带宽和文件大小。传输完成后,新服务器的 `/www/` 目录下会有一个 `all_backup.tar.gz` 文件。

> **如果SCP命令失败怎么办?** 检查新服务器是否允许root登录SSH(在宝塔面板“安全”中设置),检查防火墙是否放行了SSH端口。如果实在无法使用SCP,可以用宝塔面板的“文件”功能,手动下载备份文件到本地电脑,再上传到新服务器,但速度较慢。

#### 3. 在新服务器上解压并恢复数据

现在备份文件已经在新服务器上了,需要解压并恢复到正确位置。

1. 登录**新服务器**的宝塔面板,点击左侧“终端”。

2. 进入 `/www` 目录并解压备份包:

```bash

cd /www

tar -xzf all_backup.tar.gz

```

3. 解压完成后,你会看到 `/www/site` 和 `/www/database` 两个文件夹,里面就是备份文件。

4. **恢复网站文件**:点击新面板左侧“文件”,进入 `/www/backup/site` 目录(如果没有,手动创建 `backup` 和 `site` 文件夹)。将 `/www/site` 目录下的所有 `.tar.gz` 文件,**剪切**到 `/www/backup/site/` 目录下。

5. **恢复数据库文件**:同样,将 `/www/database` 目录下的所有 `.tar.gz` 文件,**剪切**到 `/www/backup/database/` 目录下。

6. **开始恢复网站**:点击新面板左侧“网站”,点击右上角“**导入/备份**”按钮(有些版本叫“恢复”)。

7. 在弹出的窗口中,选择“**从本地备份恢复**”,你会看到刚才剪切进来的所有网站备份文件列表。

8. **逐个点击每个网站备份文件右侧的“恢复”按钮**。恢复时,宝塔会自动创建同名网站并还原文件。注意:如果旧服务器上有多个域名绑定同一个网站,恢复后会自动识别。

9. **恢复数据库**:点击新面板左侧“数据库”,同样点击“导入/备份” -> “从本地备份恢复”,逐个点击每个数据库备份文件右侧的“恢复”按钮。恢复时会自动创建同名数据库和用户。

> **关键点**:恢复顺序必须是先恢复网站,再恢复数据库。因为恢复网站时,宝塔会创建对应的网站配置文件,但不会自动关联数据库。数据库恢复后,网站才能连接上。

#### 4. 迁移SSL证书与伪静态规则(最容易遗漏的一步)

很多网站使用了SSL证书(HTTPS)和自定义伪静态规则,这些信息不会自动跟随网站文件迁移。必须手动处理。

1. **迁移SSL证书**:

- 在**旧服务器**宝塔面板中,进入“网站” -> 点击任意一个站点 -> “SSL” -> 找到“证书”和“密钥”两个文本框。

- **全选并复制**证书内容(包括 `-----BEGIN CERTIFICATE-----` 和 `-----END CERTIFICATE-----`)。

- 在**新服务器**宝塔面板中,进入对应站点(恢复后已存在)-> “SSL” -> 选择“**粘贴证书**”选项卡,将证书和密钥分别粘贴到对应框内,点击“保存”或“启用”。

- **必须为每一个启用了HTTPS的站点重复此操作**。如果站点数量多,建议在旧服务器上逐个复制并记录到文本文件中,然后在新服务器上统一粘贴。

2. **迁移伪静态规则**:

- 在旧服务器站点设置中,点击“伪静态”选项卡,查看当前使用的是哪个规则(如ThinkPHP、WordPress、Laravel等)。

- 如果使用的是宝塔内置的规则,直接在新服务器对应站点的“伪静态”中,选择相同的规则即可。

- 如果是**自定义规则**(比如自己写的Nginx规则),则在旧站点“伪静态”中选择“**自定义**”,**全选复制**文本框内的代码,然后到新服务器对应站点的“伪静态” -> “自定义”中粘贴保存。

3. **迁移反向代理配置**(如果有):

- 如果旧站点设置了反向代理(比如代理到某个端口或另一个服务),请进入“设置” -> “反向代理”,记录下目标URL和发送域名,然后在新服务器上重新添加。

#### 5. 修改域名解析并验证

数据、证书、规则都迁移完成后,最后一步是让域名指向新服务器。

1. **获取新服务器IP**:在新服务器宝塔面板首页,查看公网IP地址。

2. **登录域名管理后台**(如阿里云、腾讯云、DNSPod等),找到你的域名解析记录。

3. **修改A记录**:将域名(如 `www.example.com` 和 `example.com`)的A记录值,从旧服务器IP修改为新服务器IP。

4. **等待解析生效**:TTL(生存时间)设置越短,生效越快。通常等待5-10分钟,最长24小时。你可以使用 `ping yourdomain.com` 命令查看是否解析到了新IP。

5. **全站功能测试**:

- 打开网站首页,确认能正常访问。

- 测试登录功能(如WordPress后台、会员中心),确认数据库连接正常。

- 测试搜索、评论、支付等动态功能。

- 检查浏览器地址栏是否有绿色小锁(HTTPS证书生效)。

- 测试图片、CSS、JS等静态资源是否正常加载。

> **注意**:如果网站使用了CDN(如Cloudflare、又拍云),需要在CDN后台更新源站IP为新服务器IP,而不是修改域名A记录。

---

### 常见问题

**Q1:恢复网站时提示“网站目录已存在”怎么办?**

A:这是因为新服务器上可能已经存在同名文件夹。解决方案:在恢复前,先手动删除 `/www/wwwroot/` 下对应的网站文件夹,或者重命名旧文件夹。然后再执行恢复操作。

**Q2:数据库恢复后,网站报错“数据库连接失败”?**

A:通常是因为数据库用户名或密码不匹配。进入新面板“数据库”,找到对应数据库,点击“管理” -> 检查“权限”中的用户名和主机(一般为localhost)。然后进入网站根目录,找到数据库配置文件(如WordPress的 `wp-config.php`,ThinkPHP的 `.env`),核对数据库名、用户名、密码是否与面板中一致。如果不一致,手动修改配置文件。

**Q3:迁移后网站打开显示“403 Forbidden”或“500 Internal Server Error”?**

A:403通常是网站目录权限问题。进入新面板“文件”,右键点击网站根目录,选择“权限”,将权限设置为 `755`,所有者设置为 `www`。500错误通常是PHP版本不兼容或伪静态规则错误。请检查新服务器PHP版本是否与旧服务器一致,并检查伪静态规则是否已正确迁移。

**Q4:备份文件传输到一半中断了怎么办?**

A:使用SCP命令传输大文件时,如果网络不稳定,可以改用 `rsync` 命令,它支持断点续传。命令格式:`rsync -avzP --progress -e 'ssh -p 22' /www/backup/all_backup.tar.gz root@新服务器IP:/www/`。如果文件已经部分传输,它会自动从断点继续。

**Q5:迁移后邮箱(如Postfix或企业邮)不能用了?**

A:宝塔面板的邮件服务配置不会随网站备份迁移。你需要在新服务器上重新配置邮件服务(如使用SMTP服务),或者在旧服务器上导出邮件配置,手动在新服务器上导入。

---

### 收尾总结

整个宝塔面板站点迁移的核心思路是:**备份 -> 传输 -> 恢复 -> 配置 -> 解析**。其中最容易出问题的环节是SSL证书和伪静态规则的遗漏,以及数据库连接信息的核对。建议在操作前先列一张清单,逐一核对每个站点的特殊配置(如反向代理、定时任务、防火墙规则),确保无一遗漏。

迁移完成后,不要急于删除旧服务器上的数据。建议保留旧服务器至少3-7天,等新服务器稳定运行、所有功能验证无误后,再释放旧服务器资源。如果遇到无法解决的问题,可以登录旧服务器,通过宝塔面板的“快照”或“云备份”功能,随时回滚到迁移前的状态。