宝塔/aaPanel网站搬家教程:站长亲测,一天把8个站点(含WHMCS)从旧服务器迁到新服务器,零停机

2026-10-09VPS教程 / 站长推荐5 阅读

本站刚把一台跑了 266 天的宝塔老服务器整体迁到新机器上:8 个站点,其中 3 个是 WHMCS,外加 8 个数据库和一批 SSL 证书,一天搞定,访客几乎无感知。这篇把流程和踩过的坑整理出来,你换服务器时可以直接照着做。

【站长自营】JUSTG、IMIDC 均为本站站长运营的品牌,以下价格与配置整理自两家官网商店页(2026-10-09),以下单页为准。

第 0 步:先盘点,别急着搬

登录旧服务器,把这些信息列成清单:

# 网站目录和大小
du -sh /www/wwwroot/*
# 每个站的 nginx 配置:域名、PHP 版本、反向代理
grep -E "server_name|root|enable-php|proxy_pass" /www/server/panel/vhost/nginx/*.conf
# 证书到期时间
for c in /www/server/panel/vhost/cert/*/fullchain.pem; do echo "$c $(openssl x509 -enddate -noout -in $c)"; done
# 计划任务
crontab -l

重点:再用 dig 查一下每个域名现在解析到哪里。我们就发现有两个域名的线上站点其实不在这台服务器上,如果照着目录直接搬并切换解析,会把线上站覆盖掉。

第 1 步:新服务器装好同版本环境

PHP 版本要和旧站一致。WHMCS 这类加密程序还需要 ionCube,以及 imap 等扩展。对比一下两边的扩展列表:

/www/server/php/74/bin/php -m

少什么就在面板里装什么。ionCube loader 可以直接从旧服务器复制同版本的 .so 文件,再在 php.ini 里加上 zend_extension。

第 2 步:导出数据库(保证一致性)

mysqldump -uroot -p --single-transaction --routines --triggers --events \
  --default-character-set=utf8mb4 数据库名 | gzip > 数据库名.sql.gz

--single-transaction 可以在不锁表的情况下导出一致的 InnoDB 快照,网站不用停。导出后用 zcat 文件 | tail -1 看最后一行是不是 “Dump completed”。

第 3 步:服务器之间直接传文件

不要先下载到自己电脑再上传,直接让两台服务器对传,速度快得多:

cd / && tar czf - www/wwwroot/站点目录 | ssh -p 端口 root@新服务器IP "mkdir -p /root/migrate && tar xzf - -C /root/migrate"

第 4 步:在新面板里建站、建库、导入

  • 用面板建站:不要手写 nginx 配置,否则站点不会出现在面板里,以后不好管理。
  • 把文件复制进网站目录。注意宝塔的 .user.ini 带了不可修改属性,要先 chattr -i,复制完再加回去,最后 chown -R www:www。
  • 建数据库时,用户名和密码要和程序配置文件里的一致,然后导入备份。
  • 伪静态:旧站如果是 Apache 跑的 .htaccess,新站用 nginx 就要改写成 nginx 规则,vendor、attachments 这类敏感目录记得禁止访问。
  • SSL 证书可以先沿用旧证书,切换后再续期。

第 5 步:切换前先验证

不改解析,也能直接访问新服务器上的站点:

curl -I --resolve www.你的域名.com:443:新服务器IP https://www.你的域名.com/

我们把同一批 URL 分别请求新旧服务器,对比状态码和内容大小,静态站完全一致后才切换。也可以改本机的 hosts 文件,用浏览器检查。

第 6 步:切换解析

站点如果接入了 Cloudflare 代理,只要把 A 记录改成新 IP,几乎实时生效,旧服务器全程在线,访客无感知。没用 Cloudflare 的,提前一天把 TTL 调到 300 秒。

如果是改 NS(例如把域名转到 Cloudflare),各地 DNS 缓存最长可能要 48 小时才完全生效,期间新旧服务器都要保持在线。

WHMCS 迁移的特别注意

  • 授权:WHMCS 授权绑定 IP,换服务器后要到授权后台 Reissue。
  • configuration.php 里的 cc_encryption_hash 必须原样保留,否则已保存的加密数据无法解密。
  • cron:确认新服务器上配好了 WHMCS 的定时任务(crons/cron.php),但不要在旧服务器还在跑的时候两边同时运行,否则可能重复出账单。

不想自己搬?

迁到 IMIDC 的新客户,符合条件可以享受免费迁移,网站、数据库、邮件都由技术团队完成。新服务器可以看 IMIDC 香港(免备案,$18/月起),或者 JUSTG 东京($9.99/月起)。

咨询 IMIDC 免费迁移 →

价格整理自 JUSTG、IMIDC 官网商店页,整理日期 2026-10-09,以下单页为准。

【站长自营】本文介绍的品牌由本站站长运营,属于自家产品推荐。价格、配置以官网下单页为准,购买前可先申请测试机。