本文详细介绍如何通过宝塔面板将网站从A服务器完整迁移至B服务器,涵盖备份、文件传输、数据库同步、域名解析等关键步骤,并提供常见问题解决方案,帮助用户实现零宕机迁移。
一、迁移前的准备工作
在开始迁移前,请确保:
- 两台服务器均已安装相同版本的宝塔面板(推荐7.9+)
- B服务器磁盘空间≥A服务器已用空间的1.5倍
- 记录A服务器的以下信息:
查看PHP版本 php -v 查看MySQL版本 mysql -V
二、完整迁移步骤
1. 源服务器(A)操作
(1)整站备份
进入宝塔面板 → 网站 → 对应站点 → 备份
同时备份:
- 网站文件(默认在/www/wwwroot)
- 数据库(phpMyAdmin导出或宝塔数据库备份)
- SSL证书(/www/server/panel/vhost/cert)
(2)特殊配置备份
- 伪静态规则(Nginx/Apache配置)
- 定时任务(宝塔计划任务界面截图)
- .htaccess文件(如有)
2. 目标服务器(B)操作
(1)环境准备
通过宝塔一键安装:
- Web服务器(Nginx/Apache)
- PHP(版本需与A服务器一致)
- MySQL(版本需≥A服务器)
(2)文件传输
推荐使用宝塔远程下载功能:
在B服务器宝塔面板:
文件 → 远程下载 → 输入A服务器备份文件URL
或使用rsync同步:
rsync -avzP root@A_IP:/www/wwwroot /www/wwwroot
3. 数据库迁移
方法一:宝塔数据库工具
- 在A服务器导出数据库(SQL格式)
- 在B服务器创建同名数据库
- 通过phpMyAdmin导入SQL文件
方法二:命令行迁移
A服务器导出:
mysqldump -u root -p 数据库名 > db_backup.sql
B服务器导入:
mysql -u root -p 数据库名 < db_backup.sql
4. 域名切换(关键步骤)
为避免访问中断,建议按此顺序操作:
- 在B服务器完成所有配置测试(使用临时URL访问验证)
- 修改DNS解析TTL为300秒(提前72小时操作)
- 正式切换域名解析至B服务器IP
- A服务器保持运行24小时后再关闭
三、迁移后检查清单
检查项 | 验证方法 |
---|---|
文件完整性 | 对比A/B服务器文件md5值:find /www/wwwroot -type f -exec md5sum {} + > check.txt |
数据库连接 | 检查网站配置文件(如wp-config.php)中的数据库信息 |
伪静态 | 测试网站各URL是否正常跳转 |
四、常见问题解决方案
Q1:迁移后出现500错误?
检查:
1. PHP版本是否一致
2. 文件权限(推荐设置为755/644)
3. 缺失的PHP扩展(通过宝塔PHP管理安装)
Q2:数据库导入失败?
尝试:
1. 修改my.cnf中的max_allowed_packet=256M
2. 使用mysql -uroot -p -f 数据库名 < backup.sql
强制导入
Q3:HTTPS证书不生效?
1. 确保证书文件路径正确
2. 在宝塔SSL界面重新保存一次配置
3. 检查443端口是否开放:
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
评论