如何将网站从非WHM/Cpanel服务器迁移至WHM/Cpanel服务器
非cPanel架构源服务器迁移至WHM/cPanel服务器实操方案
迁移前准备
- 提前梳理所有站点的资产清单:每个站点的根目录路径、绑定域名、数据库信息、PHP版本要求、伪静态规则、邮件账号列表、SSL证书文件
- 在源服务器完成所有站点的全量备份:站点文件打包、数据库导出、邮件数据导出(若使用源端自建邮件服务)
- 在目标WHM后台为每个站点创建对应cPanel账号,匹配好站点所需的PHP版本、磁盘配额、功能权限
- 确认两台服务器的SSH连通性,源、目标端均开放SSH访问权限,持有可读取所有站点数据的账号权限
迁移实操方案
方案一:WHM官方迁移工具(适合站点数量较多的场景)
- 登录目标服务器WHM后台,进入Transfer Tool功能模块
- 填写源服务器IP、SSH端口、root账号密码(或SSH密钥),远程服务器类型选择Non-cPanel
- 等待工具扫描源服务器的站点目录、域名绑定记录,勾选需要迁移的站点,匹配到目标端提前创建的对应cPanel账号
- 启动迁移任务后工具会自动拉取站点文件并写入对应cPanel账号的
public_html目录,数据库及邮件数据需后续手动导入配置
方案二:手动迁移(适合站点数量少、配置复杂度高的场景,可控性更强)
1. 站点文件迁移
- 源服务器进入对应站点根目录,执行打包命令:
tar -zcvf 站点域名.tar.gz ./ - 将压缩包传输到目标cPanel账号的
public_html目录下,执行解压:tar -zxvf 站点域名.tar.gz - 执行权限修正命令,避免站点访问权限报错:
chown -R cPanel用户名:cPanel用户名 /home/cPanel用户名/public_html/
2. 数据库迁移
- 源服务器执行数据库导出命令:
mysqldump -u源数据库用户名 -p 源数据库名 > 数据库备份.sql - 目标端cPanel后台创建同名数据库、数据库用户,给用户授予该数据库的全部权限
- 执行导入命令:
mysql -u目标数据库用户名 -p 目标数据库名 < 数据库备份.sql - 修改站点配置文件中的数据库连接地址、用户名、密码为目标端新配置
3. 附加配置迁移
- 如需迁移邮件,先在目标cPanel创建和源端完全一致的邮件账号,使用IMAP同步工具完成邮件数据迁移
- 手动配置站点伪静态规则、SSL证书,匹配源端配置
迁移后验证
- 本地修改hosts文件将域名指向新服务器IP,逐个访问站点全量功能,确认静态资源加载正常、动态功能无报错
- 验证数据库读写、邮件收发、表单提交、文件上传等功能运行正常
- 确认无问题后修改域名DNS解析指向新服务器IP,解析生效后保持源端服务运行3-7天再下线,避免解析未完全生效导致访问异常
内容的提问来源于stack exchange,提问作者Faiq
相关产品推荐
相关产品推荐

