宝塔面板整站换机迁移实录:网站与数据库无缝搬迁步骤

核心导读:手头一台云服务器租约到期,趁周末把上面的几个 WordPress 和静态站点迁到新机上。顺手把完整迁移流程和排查细节记录下来,给需要换服务器的朋友做个参考。

手头一台腾讯云机器到期,续费太贵,趁着活动在另一家厂商买了台 4G 内存的新机器。这两天陆陆续续把上面的几个博客、API 服务和测试站点迁了过去。正好把完整的迁移流程、耗时和踩坑点记下来,方便日后自己查阅,也给需要换服务器的朋友一个参考。

1. 迁移前的环境与数据准备

很多人搬家第一步就急着打包文件,其实最关键的是新旧服务器的环境一致性。如果旧机跑的是 PHP 7.4 + MySQL 5.7,新机装了 PHP 8.2 + MySQL 8.0,数据库还原很可能会报语法错误,或者程序直接白屏。

在动数据之前,先在新服务器安装好宝塔面板,并核对以下两项:

  • Web 运行环境:Nginx 版本、PHP 版本(包括经常用到的 fileinfo、redis、opcache 等扩展是否装齐)。
  • 数据库版本:尽量保持主版本号一致(如都是 MySQL 5.7),避免字符集或加密方式差异。

针对不同体量的数据,常用的搬迁策略如下:

站点数据规模推荐迁移方式核心优势注意事项
1GB 以内的小型站点面板自带“一键迁移”或手工打包操作门槛低,直接打包下载/上传适合纯博客、企业展示站
1GB ~ 20GB 常见站点宝塔一键迁移 API 版本走服务器内网或公网直接拉取,省去本地中转需提前放行目标服务器 API 接口与端口
20GB 以上大站/多附件手工分卷压缩 + rsync / scp 传输传输稳定,断点续传,不占面板进程数据库单独 dump 导出,附件目录单独传输

2. 实际迁移操作流程

这次我手头有两三个 5G 左右的站点,直接用宝塔官方的“一键迁移 API 版本”效率最高。如果是几十 G 的大附件站,建议走命令行 scp。

以面板自带的迁移工具为例,具体步骤如下:

  1. 新服务器准备:在新服务器的宝塔面板中,进入“软件商店”安装“宝塔一键迁移 API 版本”。
  2. 获取 API 密钥:登录旧服务器宝塔面板,在“面板设置”中开启 API 接口,配置新服务器的公网 IP 到白名单中,复制 API 密钥。
  3. 在新服务器建立连接:打开新服务器的一键迁移工具,输入旧服务器的面板地址和刚才的 API 密钥,点击测试连接。
  4. 勾选站点与数据库:连接成功后,工具会自动读取旧服务器的所有站点、数据库和 FTP。按需勾选需要搬家的站点,工具会自动在后台进行打包、网络传输、解压以及数据库导入。

如果采用手工迁移,逻辑也是完全一致的:旧机导出 .sql 备份并压缩网站目录 -> 通过 scp 或下载上传到新机 -> 新机建立同名站点与数据库 -> 导入 SQL 并解压覆盖目录。

关键权限检查:手工解压后,务必检查网站文件的所有者。宝塔默认的 Web 运行用户是 www,如果解压后权限变成了 root,会导致站点无法上传图片或报错 500。可在 SSH 终端执行一次权限修复:

bash
chown -R www:www /www/wwwroot/你的网站目录 chmod -R 755 /www/wwwroot/你的网站目录

3. 域名解析切换与验证

数据传输完毕后,先不要急着修改域名 DNS 解析。因为一旦切了解析但新站有问题,排查会非常被动。

第一步:本地 Hosts 预览验证
打开本地电脑的 hosts 文件(Windows 位于 C:\Windows\System32\drivers\etc\hosts,Mac/Linux 位于 /etc/hosts),添加一行映射:

text
新服务器IP 你的域名.com

保存后打开浏览器(建议开无痕模式),直接访问域名。此时流量实际走的是新服务器。在这个状态下测试文章发布、图片上传、后台登录等功能,确认一切正常。

第二步:切换 DNS 解析
确认新站运行无误后,删除本地 hosts 的映射记录。登录域名解析服务商后台(如 Cloudflare、阿里云 DNS 等),将 A 记录修改为新服务器的 IP 地址。解析生效通常需要几分钟到几小时不等。

4. 几个容易踩坑的细节

  • TTL 提前调小:在计划搬家前 24 小时,把域名的 DNS TTL 调小(比如调成 300 秒 / 5 分钟)。这样切解析时各地生效极快,能把回流到旧站的时间窗口压缩到最低。
  • 伪静态与反向代理遗漏:宝塔的一键迁移动作通常会把 Nginx 配置带过来,但如果你旧站点里手工加过自定义的 location 规则、反向代理配置或防盗链设置,搬完后一定要点开新站点的“设置 -> 伪静态/配置文件”核对一遍。
  • SSL 证书续期问题:迁移会连带证书私钥一起复制,访问不会报错。但如果原来使用的是 Let's Encrypt 证书,解析生效后,记得在新面板的 SSL 界面确认一下自动续签任务是否存在,避免几个月后证书过期停摆。
  • 旧服务器保留时间:新站上线后,旧服务器千万不要当天注销。至少保留运行 3 到 7 天,观察访问日志,确认没有残余流量,且数据完全无误后再关停旧实例。

常见问题与解答 (FAQ)

Q 迁移过程中旧站需要主动关停吗?

如果是内容变动频繁的论坛或商城,在导出数据库前建议开启维护模式阻断写入;个人博客或普通展示类站点无需关停,直接导出迁移后切解析即可。

Q 换服务器后 SSL 证书需要重新申请配置吗?

不需要,宝塔迁移时会连同 Nginx 配置文件和证书私钥一起打包带过来;等域名解析生效后,后续的到期自动续签也能正常工作。

返回运维知识库