核心概念:使用 WHM 的“传输工具” (Transfer Tool)
这个工具可以从源服务器直接连接到目标服务器,自动传输账户、网站文件、数据库、电子邮件账户和设置,它支持多种传输方式,但最常用和最简单的是 Account to Account Transfer(账户到账户传输)。

第一步:准备工作
在开始传输之前,做好充分的准备可以避免很多问题。
确认源服务器和目标服务器的信息
- 源服务器:
- WHM 用户名和密码:具有
Transfer或root权限的账户。 - IP 地址和主机名。
- WHM 用户名和密码:具有
- 目标服务器:
- WHM 用户名和密码:具有
root或Reseller权限的账户。 - IP 地址和主机名。
- 确保服务器已启用“远程服务”:在目标服务器的 WHM 中,搜索
Remote Access,确保Setup Remote Access Key已生成,Enable cPanel DNS Cluster是开启的。
- WHM 用户名和密码:具有
检查服务器兼容性
- cPanel 版本:虽然不是必须,但尽量使用相同或相近版本的 cPanel,以避免兼容性问题。
- PHP 版本:如果网站依赖特定版本的 PHP,请确保目标服务器上已安装并启用该版本。
- 已安装的模块/扩展:检查源服务器上网站所需的 PHP 模块(如
curl,gd,mysqli等)在目标服务器上是否已安装。 - 磁盘空间:确保目标服务器有足够的磁盘空间来容纳所有要传输的账户。
整理要传输的账户列表
- 不要一次性传输所有账户:特别是如果账户数量很多,建议先选择一个或几个非关键账户进行 测试传输,确保流程无误。
- 记录特殊账户:标记出有特殊配置、数据库很大、或者使用自定义 PHP 版本的账户,以便在传输后重点检查。
(可选)在目标服务器上预创建账户
如果你希望保留目标服务器上账户的特定设置(如已分配的带宽、磁盘空间限制),可以在目标服务器的 WHM 中预先创建这些账户,传输工具会覆盖文件和数据库,但保留这些预定义的限制。
第二步:在目标服务器上启动传输
我们将从目标服务器(接收方)开始操作,因为通常是从这里发起迁移任务。
-
登录目标服务器的 WHM。
(图片来源网络,侵删) -
在顶部的搜索框中输入
Transfer,然后选择Transfer Tool。 -
你会看到几种传输方式,对于 cPanel 到 cPanel 的迁移,选择
Account to Account Transfer。 -
配置源服务器信息:
- Type:选择
cPanel Account。 - Hostname:输入源服务器的 IP 地址或域名。
- Username:输入源服务器的 WHM 用户名(通常是
root)。 - Password:输入对应的密码。
- Port:保持默认的
2086或2087。 - Security:选择
SSL(推荐)。
- Type:选择
-
点击
Connect按钮。
(图片来源网络,侵删)- 系统会尝试连接到源服务器,如果连接成功,它会自动读取源服务器上所有 cPanel 账户的列表。
- 如果连接失败,请仔细检查 IP 地址、用户名、密码、端口以及源服务器的防火墙设置(确保
2086/2087端口是开放的)。
第三步:选择并配置要传输的账户
连接成功后,你会看到一个账户列表。
-
选择账户:
- 勾选你想要传输的账户前面的复选框。
- 你可以使用顶部的
Select All(全选)或Invert Selection(反选)来批量操作。 - 建议:先只勾选一个测试账户。
-
配置传输选项:
Reseller to Transfer:如果目标服务器上已有经销商账户,可以选择将账户传输到该经销商名下。IP Address:为新账户分配一个 IP 地址,你可以选择保留源 IP 或使用目标服务器上的其他 IP。DNS Check:强烈建议勾选此项,它会检查源域名的 NS 记录是否指向目标服务器,确保传输后网站能正常解析。Update Nameservers:如果勾选了DNS Check,这个选项也会出现,它会自动将源域名的 NS 记录修改为目标服务器的 NS。(谨慎操作!如果你不想立即切换 DNS,请不要勾选)SSL:如果账户启用了 SSL,可以勾选此项来传输 SSL 证书。Bandwidth and Disk Space:可以调整传输后账户的带宽和磁盘空间限制。Suspension Status:可以设置传输后账户的状态(如Active或Suspended)。
-
开始传输:
- 配置好选项后,点击页面底部的
Begin Transfer按钮。 - 传输过程会自动开始,你可以在 WHM 的
Transfer Tool页面查看传输状态和日志。
- 配置好选项后,点击页面底部的
第四步:传输后检查与验证
传输完成后,千万不要立即删除源服务器上的数据! 必须进行彻底的测试。
-
检查传输状态:
- 在
Transfer Tool中确认所有账户的状态都显示为Completed。
- 在
-
访问网站:
- 在浏览器中访问域名,检查网站是否能正常打开。
- 检查网站首页、所有子页面、图片和样式表是否都加载正常。
-
检查数据库:
- 登录 cPanel,进入
phpMyAdmin。 - 检查数据库和表是否都已成功传输,数据是否完整。
- 登录 cPanel,进入
-
检查网站功能:
- 测试网站的交互功能,如用户登录、注册、提交表单、评论等。
- 检查网站的管理员后台是否能正常登录。
-
检查电子邮件:
- 尝试使用 Webmail (如
webmail.yourdomain.com) 登录,检查邮件是否正常。 - 如果使用第三方客户端(如 Outlook, Foxmail),检查 POP3/IMAP/SMTP 设置是否需要更新(IP 地址变了)。
- 尝试使用 Webmail (如
-
检查 Cron 任务和重写规则:
- 登录 cPanel,检查
Cron Jobs是否已正确迁移。 - 检查网站根目录下的
.htaccess文件是否被正确传输,重写规则是否依然有效。
- 登录 cPanel,检查
第五步:更新 DNS 并清理
只有在所有检查都通过后,才能执行此步骤。
-
更新 DNS 记录:
- 最安全的方法:将源域名的 A 记录 修改为指向目标服务器的 IP 地址,等待 DNS 生效(通常需要几分钟到48小时)。
- 如果之前在传输工具中勾选了
Update Nameservers:域名的 NS 记录已经被修改,你需要到域名注册商处确认 NS 记录是否正确指向了目标服务器。 - 强制刷新:在本地电脑上使用
ipconfig /flushdns(Windows) 或sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder(macOS) 来刷新 DNS 缓存。
-
监控网站状态:
- 在 DNS 生效期间,使用在线工具(如 DNSChecker.org)监控你的域名在全球各地的解析情况。
- 确保全球用户都能访问到新服务器上的网站。
-
最终清理:
- 确认网站在新服务器上稳定运行至少 24-48 小时后,你就可以安全地删除源服务器上的旧数据了。
- 在源服务器的 WHM 中删除已迁移的账户,以释放资源。
常见问题与解决方法
-
Q: 传输失败,提示 "Connection refused" 或 "Timeout"。
- A: 检查源服务器的防火墙(如 CSF, APF)是否阻止了目标服务器的 IP,检查源服务器的
whostmgrd服务是否正在运行。
- A: 检查源服务器的防火墙(如 CSF, APF)是否阻止了目标服务器的 IP,检查源服务器的
-
Q: 传输速度很慢。
- A: 这是正常的,特别是对于大账户,如果服务器间带宽充足但速度依然极慢,可能是服务器负载过高,可以在非高峰时段(如凌晨)进行传输。
-
Q: 网站迁移后,部分图片或样式表丢失。
- A: 检查
.htaccess文件中的规则是否在新服务器上造成冲突,可能是文件权限问题,确保文件和目录的权限正确(通常是 644 和 755)。
- A: 检查
-
Q: 数据库连接错误。
- A: 检查
wp-config.php(WordPress) 或其他配置文件中的数据库主机名、用户名、密码和数据库名是否正确,通常数据库主机名是localhost。
- A: 检查
-
Q: 邮件无法发送或接收。
- A: 检查邮件服务是否在目标服务器上正常运行,检查邮件日志 (
/var/log/exim_mainlog) 以定位问题,确保域名的 MX 记录正确(如果域名解析已切换)。
- A: 检查邮件服务是否在目标服务器上正常运行,检查邮件日志 (
希望这份详细的指南能帮助你顺利完成 cPanel 网站的迁移!
