# 将网站从 cPanel 迁移到 KapsuleHost

Source: https://support.kapsulehost.com/zh-cn/sites-migrate-cpanel

大多数人将网站从 cPanel 迁移时都不需要动一个文件：KapsuleHost 提供引导式迁移服务，在旧网站保持在线的同时为您复制文件和数据库。本指南介绍三种迁移路径、如何选择，以及您更倾向于自行操作时的手动迁移方式。

所有套餐的迁移服务都是免费的。没有设置费，也没有按站点收取的费用。

## 开始之前

> **Note:** 在新网站经过验证并且您的域名已指向新主机之前，请保持旧主机处于激活状态。过早取消是此过程中唯一无法撤销的错误，因为复制的数据源也会随之消失。请留出一周的重叠时间。

请准备好以下信息：

- 网站当前运行所使用的域名。
- 网站的 WordPress 管理后台、或 cPanel、FTP 登录凭据。
- 您的域名注册商登录信息，用于最后一步。
- 一个拥有空闲站点位的 KapsuleHost 主机套餐。

## 选择迁移路径

在 KPanel 左侧边栏中打开**迁移**，点击进入网站迁移页面，并输入您当前的网站地址。KapsuleHost 会检查该网站，识别所使用的平台，并提供三种路径。

![KPanel 中的迁移路径选项](https://support.kapsulehost.com/help/screenshots/sites-migrate-cpanel.89d2d04b.webp)

| 路径 | 工作原理 | 适用场景 |
|---|---|---|
| **KapsuleHost 迁移插件** | 在源站点上安装一个免费插件，并粘贴一次性令牌。您的主机凭据不会外泄。 | WordPress 和 WooCommerce 网站。这是最快的方式，也是大多数用户应该选择的方式。 |
| **主机凭据** | 向我们提供临时的 FTP、SFTP 或 cPanel 访问权限以及数据库详情。我们会直接提取所有内容。 | 适用于任何平台，包括非 WordPress 网站。 |
| **由我们团队处理** | 告诉我们关于网站的信息，迁移工程师将手动完成迁移。 | 复杂配置、同时迁移多个网站，或者您只是不想自己动手。 |

三种方式均为免费，您可以在向导过程中的任意时刻切换。

### 插件路径

1. 选择 **KapsuleHost 迁移插件**。
2. 从屏幕上下载 `kapsule-migrator.zip`。
3. 在您当前的网站上，前往**插件**，然后**安装插件**，再**上传插件**。上传压缩包并启用它。
4. 在您的 WordPress 管理菜单中打开 **KapsuleHost Migrate**。
5. 从 KPanel 复制令牌，粘贴到插件中，然后点击**开始迁移**。

KPanel 会自动检测连接，并将您带到实时进度页面。文件、数据库和上传内容都会为您复制完成。令牌将在 48 小时后过期；如有需要，请从同一页面生成新的令牌。

### 凭据路径

选择**主机凭据**，并填写两部分内容：FTP、SFTP 或 SSH 详情（主机名、用户名、密码）以及数据库详情（主机、名称、用户名、密码）。还有一个备注字段，供您填写任何有帮助的额外信息，例如您的 cPanel 地址。

> **Note:** 凭据在存储前会先加密，仅自动化迁移系统可读取，工作人员无法查看。迁移完成后 24 小时内将被永久删除，并且绝不会用于复制网站以外的任何用途。

### 团队路径

告诉我们关于网站的信息以及您偏好的时间安排。迁移工程师将在四个工作小时内回复迁移方案，未经您批准不会上线任何内容。

## 接下来会发生什么

无论您选择哪种路径，流程大致相同：

1. 复制过程在后台运行。您现有的网站将全程保持在线且不受影响。
2. 您的新网站将在一个临时地址上可供查看。
3. 您检查并确认无误。
4. 此时 DNS 才会发生更改。

您的原网站将在旧主机上保持不变，并且您有 7 天的回滚窗口期：在网站上线后的七天内，在迁移页面上点击一次**切换回原主机服务商**，即可将域名切换回旧主机，或者如果您的 DNS 托管在自己的注册商处，系统会显示需要恢复的具体记录。请参阅[上线后改变主意怎么办](https://support.kapsulehost.com/zh-cn/migrations-overview)。请至少保留旧主机七天。

## 切换前的检查

这一步值得认真对待，因为 DNS 切换后，每位访客看到的都是您已确认通过的内容。

加载临时地址并检查以下内容：

- 首页以及两到三个内页。
- 图片，包括幻灯片或图库中的任何图片。
- 任何联系或预约表单，实际提交测试一次。
- 登录管理后台，并保存一次编辑。
- 针对商店网站：完整走一遍测试订单，直至确认页面。

如果某些 URL 仍指向旧域名，请运行搜索替换操作：[执行搜索与替换](https://support.kapsulehost.com/zh-cn/wordpress-search-replace)。

## 指向您的域名

检查无误后，即可迁移域名。您可以将域名服务器更改为 KapsuleHost 的域名服务器，这是更简便的方式，并能将 DNS 管理纳入 KPanel；或者保留现有的 DNS 提供商，重新指向网站的相关记录。

完整说明请参阅[更改域名服务器](https://support.kapsulehost.com/zh-cn/nameservers)和[将自定义域名连接到您的网站](https://support.kapsulehost.com/zh-cn/custom-domain-for-website)。

DNS 更改需要几分钟到几小时不等的时间才能传播到所有访客。在此期间，部分访客仍会访问到旧主机，这正是您需要保留旧主机运行的原因。

> **Tip:** 请在工作日的清闲早晨进行域名切换，而不是周五晚上。这样如果出现需要调整的问题，您能保持清醒，我们团队也能及时联系到。

## 手动迁移

如果您更倾向于自行操作，或者网站所用平台不受支持，手动迁移方式依然适用。

### 1. 创建网站

**网站**，然后**添加网站**，再**新网站**。选择与您要迁移的网站相匹配的站点类型。该网站会在一个临时地址上完成配置，您可以立即进行测试。请参阅[创建您的第一个网站](https://support.kapsulehost.com/zh-cn/creating-your-first-website)。

### 2. 从 cPanel 导出

通过 cPanel 的文件管理器或 FTP 下载网站文件。对于 WordPress 网站，需要下载 `public_html` 下的所有内容，包括 `wp-config.php`。如果您愿意，cPanel 的备份向导也可以将整个内容打包成一次性下载。

然后导出数据库：在 cPanel 中打开 phpMyAdmin，选择数据库，依次使用**导出**、**快速**，再点击**执行**。

### 3. 上传文件

1. 在 KPanel 中，打开您的新网站，然后**设置**，再**SFTP**。
2. 在 **SFTP 账户**下，输入用户名并点击**创建**。
3. 复制显示的主机、端口、用户名和密码。密码仅显示一次，事后无法恢复。
4. 使用任意 SFTP 客户端连接，并将文件上传到网站目录中。

关于 SFTP 账户以及原生 SSH 访问的完整说明，请参阅[通过 SFTP 连接](https://support.kapsulehost.com/zh-cn/sftp-access)。

### 4. 导入数据库

1. 打开网站，然后**数据库**。
2. 点击**打开 phpMyAdmin**。您将自动登录，无需单独的密码。
3. 选择您的数据库，点击**导入**，选择 `.sql` 文件，然后点击**执行**。

有关导入限制以及如何处理大型导出文件，请参阅[通过 phpMyAdmin 访问您的数据库](https://support.kapsulehost.com/zh-cn/sites-phpmyadmin)。

### 5. 更新 wp-config.php

“数据库”标签页列出了新的连接详情。通过**设置**，然后**文件管理器**，将这些信息复制到 `wp-config.php` 中：

```php
define( 'DB_NAME', 'your-new-database-name' );
define( 'DB_USER', 'your-new-database-user' );
define( 'DB_PASSWORD', 'your-new-password' );
define( 'DB_HOST', '127.0.0.1' );
```

> **Warning:** 请勿将旧主机的 `.htaccess` 规则一并带过来。KapsuleHost 不使用 Apache，因此这些规则不会生效，反而可能误导您以为重定向已经生效，而实际并未生效。请改为在 KPanel 中重新创建这些规则：[了解 KapsuleHost 上的 .htaccess](https://support.kapsulehost.com/zh-cn/wordpress-htaccess)。

### 6. 测试，然后切换域名指向

加载临时地址，完成上文的检查清单，然后再指向您的域名。

## 故障排查

**网站可以加载但没有样式。** 数据库中存在旧的绝对 URL。请运行从旧地址到新地址的搜索替换操作。

**“建立数据库连接时出错”。** `wp-config.php` 中的凭据与“数据库”标签页中的信息不一致。请检查 `DB_HOST` 是否为 `127.0.0.1`。

**数据库导入过程中失败。** 导出文件大小超过 phpMyAdmin 的上传限制。请将其压缩为 `.sql.gz`，或拆分成多个较小的文件，或者提交工单，我们将为您导入。

**迁移后部分页面出现 404。** 请刷新重写规则：**WordPress**，然后**快速操作**，再**刷新重写**。请参阅[修复 WordPress 固定链接问题](https://support.kapsulehost.com/zh-cn/wordpress-permalink-issues)。

**锁形图标缺失或显示警告。** 数据库中仍存在来自 HTTP 的混合内容：[修复混合内容警告](https://support.kapsulehost.com/zh-cn/ssl-mixed-content)。
