现象

旧服务器即将到期、需要升级配置或更换机房,需要将运行在宝塔面板上的网站完整迁移到新的云服务器,确保网站代码、数据库、配置及 SSL 证书不丢失,且迁移后业务可正常访问。

原因

服务器生命周期结束或性能瓶颈导致需要迁移。迁移核心在于数据的一致性,即静态文件、动态脚本、数据库数据以及 Nginx/Apache 配置文件的完整同步。若仅复制文件而忽略数据库或环境差异,会导致网站报错或数据丢失。

先自查(3 分钟)

在开始迁移前,必须确认以下基础条件,避免迁移失败:

  • 新服务器已安装宝塔面板,且版本与旧服务器一致或更高(建议保持一致)。
  • 新服务器已安装与旧服务器相同的 PHP 版本及必要扩展(如 Redis、OPcache 等)。
  • 新服务器已安装与旧服务器相同的 MySQL/MariaDB 版本(如 5.7 或 8.0)。
  • 旧服务器磁盘剩余空间大于网站总大小(含数据库)的 1.5 倍,用于生成备份文件。
  • 新服务器防火墙已放行 80、443 端口,宝塔面板端口已记录。

解决步骤

第一步:在旧服务器创建整站备份。登录旧服务器宝塔面板,进入“网站”列表,勾选需要迁移的网站,点击“备份”。在弹出的窗口中,勾选“数据库”和“配置文件”,点击“备份”。系统会生成一个包含代码、数据库和配置的压缩包,路径通常在 /www/backup/site/ 下。

ls -lh /www/backup/site/

第二步:将备份文件传输至新服务器。可以使用宝塔面板的“文件”功能直接上传(若文件小于 500MB),或使用 FTP/SFTP 工具传输。若文件较大,建议在新服务器安装 rsync 或使用 scp 命令从旧服务器直接拉取。

注意:大文件传输可能耗时较长,建议在非业务高峰期进行,并监控网络带宽。

scp user@old_ip:/www/backup/site/your_site_20231027.tar.gz user@new_ip:~/

第三步:在新服务器恢复网站。登录新服务器宝塔面板,进入“网站”页面,点击“添加站点”。填写相同的域名,选择相同的 PHP 版本和数据库版本(如 MySQL 5.7),创建站点。创建完成后,进入该站点的“设置”->“备份”,点击“恢复”。选择刚才上传的备份文件,勾选“数据库”和“配置文件”,点击“恢复”。系统会自动解压代码、导入数据库并替换 Nginx 配置。

第四步:检查文件权限与所有者。宝塔恢复后,通常会自动处理权限,但需确认网站目录所有者为 www。

chown -R www:www /www/wwwroot/your_domain

第五步:配置 SSL 证书。如果旧服务器使用了 SSL 证书,新服务器需要重新部署。进入新站点“设置”->“SSL”,选择“其他域名”或“上传证书”,将旧服务器的证书文件(.pem 和 .key)上传并保存。若使用 Let's Encrypt,可直接在新面板申请免费证书。

第六步:修改数据库连接信息(如有)。如果新服务器数据库用户名或密码与旧服务器不同,需修改网站代码中的配置文件(如 wp-config.php 或 .env)。若保持相同用户名密码,则无需修改。

验证

迁移完成后,进行以下验证:

  1. 在新服务器面板中,确认网站状态为“运行中”。
  2. 临时修改本地 hosts 文件,将域名指向新服务器 IP,访问网站,检查首页、登录、数据读写是否正常。
  3. 检查浏览器控制台是否有 404、500 等错误。
  4. 测试关键功能,如提交表单、上传图片、数据库查询等。
# 测试新服务器 IP 连通性
curl -I http://new_server_ip

预防

  • 迁移前务必在旧服务器执行一次完整备份,并验证备份文件可正常解压。
  • 记录旧服务器的 PHP 扩展列表、MySQL 版本、Nginx 模块,确保新服务器环境一致。
  • 迁移期间,建议将网站设置为“维护模式”,避免数据写入冲突。
  • 保留旧服务器至少 1-2 周,作为回滚备份。

在奇异互动如何最快处理

在奇异互动会员中心,使用“云服务器详情页”的“VNC 控制台”可在新服务器无法远程连接时进行救援登录,确保宝塔面板可正常访问。若迁移过程中遇到网络不通或端口拦截问题,可检查云服务器安全组设置。若备份文件过大导致上传超时或迁移失败,请直接在会员中心提交“工单”,并在工单中关联具体的云服务器产品,附上旧服务器 IP、新服务器 IP、宝塔面板版本号、错误截图及备份文件名称,以便工程师快速定位是环境差异还是传输问题。