能用,但仅适用于同版本或小版本升级的平滑迁移;跨大版本或环境差异大时易卡在打包或还原阶段,且不校验配置兼容性,需手动检查mysql版本、php版本及default.db备份。

宝塔面板搬家工具到底能不能用?
能用,但只适用于同版本或小版本升级的平滑迁移,比如从 7.9.0 迁到 8.0.3;跨大版本(如 6.x → 8.x)或 PHP/MySQL 版本差异过大时,bt 13 启动的内置搬家工具大概率会卡在「打包网站」或「还原数据库」阶段,甚至导致新面板崩溃。它本质是把旧面板的 /www/server/panel/vhost/、/www/wwwroot/、/www/server/mysql/data/ 等路径打成 tar 包再解压,不校验配置兼容性。
执行前必须手动检查的三项
跳过这三步,90% 的失败都发生在这里:
- 确认新旧服务器的
MySQL版本一致(比如都是 5.7 或都是 8.0),否则mysqldump导出的 SQL 在还原时会报Unknown system variable 'validate_password_policy'类错误 - 检查旧服务器上所有网站的
PHP版本是否在新服务器已安装并启用——搬家工具不会自动安装缺失的 PHP 版本,还原后站点直接 503 - 手动备份旧面板的
/www/server/panel/data/default.db,这是用户、FTP、数据库账号等核心元数据,搬家工具不包含它,丢了就得重配全部权限
实际操作中绕不开的两个坑
即使工具跑通,也会遇到这些隐性问题:
-
SSL证书路径变了:旧版证书存在/www/server/panel/vhost/cert/,新版默认走/www/server/panel/vhost/ssl/,搬家后需进面板「网站」→「设置」→「SSL」里手动点击「其他证书」重新绑定,不能只改配置文件 - 数据库密码含特殊字符(如
@、$)会导致还原失败:工具在生成还原脚本时未对密码做 shell 转义,建议提前用mysql -u root -p登录后执行ALTER USER 'xxx'@'localhost' IDENTIFIED BY 'newpass123';统一改成无特殊字符密码
比搬家工具更稳的替代方案
如果你的旧服务器还能 SSH 登录,且新服务器已装好宝塔,直接手动同步更快更可控:
- 用
rsync -avz --delete /www/wwwroot/ user@new-server:/www/wwwroot/同步网站文件(加--delete防止旧文件残留) - 用
mysqldump --all-databases --single-transaction --routines --triggers > all.sql导出,再在新服务器用mysql 导入(注意先 <code>chown mysql:mysql all.sql) - 最后在新面板后台「网站」→「添加站点」时勾选「导入配置」,粘贴旧的
nginx或apache配置片段(路径在/www/server/panel/vhost/nginx/)
真正的难点不在传输速度,而在于旧配置里那些没文档记录的 rewrite 规则、自定义 fastcgi_param 和 .user.ini 权限限制——这些工具全会丢,只能靠人眼比对。










