宝塔面板整站换服务器迁移记录:从数据打包到域名切解析

核心导读:记录一次将多站点从老服务器平滑迁移到新服务器的全过程。整理了环境核对、数据打包传输、数据库校验以及域名解析切换的避坑细节,作为日后运维备忘。

最近老服务器租约快到期,趁着活动买了一台配置更高的新机,周末花了大半天时间把上面的 4 个站点完整挪了过去。这种操作虽然频率不高,但每次做都要提心吊胆,生怕漏了数据或者搞崩权限。

只要思路清晰,整个迁移过程其实可以做到接近零停机。顺手把这次的完整步骤和踩过的细节坑记下来,方便自己以后换机时对着看,也给准备搬家的朋友一个参考。

1. 迁移前的环境对齐与准备

很多人一上来就急着拷文件,最后在新机器上一跑直接报 500 错误。迁移前最关键的一步是把新服务器的环境版本尽量与老服务器配成一致,尤其是 PHP 的小版本与扩展组件。

在老服务器的宝塔后台里先扫一眼这几项,并在新机上提前安装好:

软件/配置项检查建议为什么重要
Nginx / Apache大版本保持一致(如 1.22)避免伪静态规则或自定义配置指令在新版弃用
MySQL / MariaDB尽量一致(如 MySQL 5.7 转 5.7)低版本导出的 SQL 导入高版本偶尔会有语法报错
PHP 版本站点绑定的具体版本(如 7.4 或 8.1)新机未装对应版本会导致站点无法启动
PHP 扩展组件如 redis、fileinfo、exif、imagemagick缺少关键扩展会导致程序逻辑直接 Fatal Error
内存交换分区 (Swap)2G 及以下机器务必先分配 1~2G Swap防止导入大型数据库时 MySQL 进程被系统 OOM 杀掉

环境搭好后,顺便把域名的 DNS 解析 TTL 提前调小(比如从 10 分钟调成 60 秒),这样后续切解析时能更快在全网生效。

2. 数据传输与同步操作

根据数据量大小,通常有两种比较稳妥的搬法:

方式 A:宝塔自带的「一键迁移」插件

如果两台机器都可以通过公网正常访问,这是最轻松的方案。在老机器安装「宝塔一键迁移 API 版」,新机器也安装相同插件。在新机器上获取 API 密钥填入老机器,勾选要迁移的网站、数据库和 FTP,面板会自动在后台完成打包、传输、解压、新建站点和导入数据库。

注意:如果单站点文件超过 30GB 或者包含了海量小图片,API 传输在网络波动时可能会出现超时断联。遇到这种大体积网站,建议使用方式 B。

方式 B:手动打包压缩 + 命令行同步

对于大体积站点,手动操作虽然稍繁琐,但心里最踏实。
  1. 老机备份数据库:直接在面板「数据库」里点备份,或者用命令行导出 SQL 文件并压缩:
bash
mysqldump -u root -p db_name > /www/backup/db_name.sql
  1. 老机打包站点目录:进入 /www/wwwroot 目录,排除掉无关的临时缓存目录后打包:
bash
tar -czvf site.tar.gz /www/wwwroot/your-site.com
  1. 直接传到新机:通过 scprsync 直连传输,速度完全取决于两台机器的公网带宽峰值:
bash
scp -P 22 site.tar.gz root@新服务器IP:/www/wwwroot/
  1. 新机解压并导入:在宝塔后台新建对应的同名站点与同名数据库(账号密码尽量与老机保持一致,省去改配置文件的麻烦),解压源码覆盖到目录,并在面板里导入刚才传过来的 SQL 备份。

3. 数据库校验与文件权限检查

文件和数据库到位后,千万别急着解析域名,这里最容易遗漏两个细节问题:

  1. 文件属主权限
迁移解压后的文件,属主有时会变成 root:root,导致网站程序无法生成缓存或上传图片。在新机器的宝塔面板中进入 /www/wwwroot,点击站点目录右侧的「权限」,确认权限为 755,所有者为 www:www。也可以直接在终端跑一条命令递归修正:
bash
chown -R www:www /www/wwwroot/your-site.com
  1. 数据库连通性
检查程序的配置文件(如 WordPress 的 wp-config.php,Laravel 的 .env),核对数据库名、用户名、密码是否与新机宝塔建好的完全一致。
  1. 伪静态与 SSL 证书
老站如果有自定义伪静态规则,复制到新站对应的配置里。把老服务器上对应的 SSL 证书(密钥与证书内容)手动复制粘贴到新站面板的 SSL 证书设置中,确保先开启 HTTPS 再访问。

4. 本地 Hosts 测试与域名解析切换

在新服务器完全准备就绪后,先不要直接动公网 DNS 解析。通过修改自己电脑本地的 hosts 文件来验证:

text
新服务器IP your-site.com 新服务器IP www.your-site.com

保存后,用浏览器无痕模式打开网站:

  • 检查前台首页、文章页、图片加载是否正常。
  • 登录后台发布一篇测试草稿,测试上传一张图片,确认数据库写入和上传目录权限没毛病。

验证通过后,将本地 hosts 恢复原样。进入域名 DNS 服务商后台,把 A 记录修改为新服务器的 IP。因为前面已经把 TTL 调小了,通常几分钟内各地就会陆续切到新机。

老机别急着退役:切完解析后,建议保留老服务器的数据和运行状态至少 3 到 5 天。观察两台机器的访问日志,直到老机器的 Nginx 访问日志基本不再产生动态请求,确认迁移彻底平稳过渡后,再去格式化或注销老服务器。

常见问题与解答 (FAQ)

Q 迁移期间老网站需要先停机关掉吗?

普通的博客或企业展示站不需要停机,新机部署好直接改解析即可;如果是有用户高频发帖、下订单的动态站点,建议在最终导出数据库的那几分钟把老站临时挂上维护页,防止产生数据差集。

Q 换到新服务器后网站打开报错 403 Forbidden 或无法上传图片是什么原因?

绝大多数是文件所有者权限变了。在宝塔文件管理里选中网站目录,把所有者重新改成 www,并将目录权限统一设为 755 即可恢复。

返回运维知识库