如何将网站迁移到新主机
本页内容
把网站迁移到新主机听起来有风险,但只要按正确的顺序操作,这其实是一项常规工作。规则很简单:先复制所有内容,在新主机上测试,然后才把域名指向它。在新站准备好之前,访客看到的一直是旧站。
本指南是适用于任何网站的分步检查清单,并附有 WordPress 和 cPanel 的说明,以及如何迁移邮件而不丢失邮件。
检查清单一览
- 盘点网站用到的一切:文件、数据库、邮件、DNS 记录、计划任务。
- 在切换前一天降低 DNS TTL。
- 在旧主机上备份文件和数据库。
- 在新主机上恢复它们。
- 在其他人看到之前,先在新主机上测试网站。
- 重新创建邮箱账户并复制邮件。
- 切换 DNS,然后把旧主机再保留几天。
不想自己动手?每个 HytHost 虚拟主机套餐都包含一次免费网站迁移,€0.99/月起。
查看虚拟主机套餐第 1 步:盘点并降低 TTL
把网站依赖的一切都记下来,确保没有遗漏:
- 网站文件,通常在
public_html中; - 每个数据库,以及它的名称和用户;
- 邮箱账户、转发器和过滤器;
- 网站之外的 DNS 记录:用于邮件的 MX,用于 SPF、DKIM 和网站验证的 TXT 记录;
- cron 任务、PHP 版本以及任何特殊设置。
然后在迁移前一天降低域名记录的 TTL,例如降到 300 秒。TTL 是互联网缓存你的 DNS 记录的时长;TTL 越短,切换就能在几分钟而不是几小时内传达到访客。另外,先不要取消旧主机。
第 2 步:备份文件和数据库
- 通过 cPanel:在 Backup 中,分别下载主目录和每个 MySQL 数据库。这些部分备份是你可以在任何 cPanel 主机上自行恢复的文件。还有一种完整账户备份,但只有主机商才能通过 WHM 恢复它;如果对方提供迁移服务,就把它发给他们。
- 手动方式:通过 FTP 或 SFTP 下载文件,并在 phpMyAdmin 中把每个数据库导出为
.sql文件。 - WordPress:Duplicator 或 All-in-One WP Migration 等迁移插件会把文件和数据库打包成一个归档。请检查新主机的上传限制:插件的导入受它限制。
第 3 步:在新主机上恢复
- 把域名添加到新的主机账户。
- 把文件上传到新的
public_html,或恢复主目录备份。 - 创建数据库和用户,然后在 phpMyAdmin 中导入
.sql文件。 - 用新的数据库名称、用户和密码更新网站配置。对于 WordPress,就是
wp-config.php。
如果域名不变,到这里就完成了。如果域名改变,旧地址会存储在整个数据库中。在 WordPress 中,切勿在 SQL 文件里用普通文本搜索来替换它:这会破坏序列化数据。请使用能正确处理它的 WP-CLI:
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --skip-columns=guid --dry-run
预览结果无误后,去掉 --dry-run 再运行。
第 4 步:切换前先测试
你可以只告诉自己的电脑域名在哪里,从而先于所有人在新主机上看到网站。在你的 hosts 文件中添加一行,写上新服务器的 IP 地址:
203.0.113.10 example.com www.example.com
在 Windows 上该文件是 C:\Windows\System32\drivers\etc\hosts(以管理员身份编辑),在 macOS 和 Linux 上是 /etc/hosts。现在打开网站,检查页面、图片、表单、登录和商店结账。完成后删除这一行。
第 5 步:迁移邮件而不丢失邮件
- 在新主机上创建相同的邮箱账户、转发器和过滤器。
- 复制现有邮件。邮箱不多时,可在邮件客户端中通过 IMAP 同时添加新旧账户,然后把文件夹拖过去。邮箱很多时,imapsync 等工具可以在服务器之间复制,并且可以重复运行而不产生重复邮件。
- DNS 切换后,再运行一次复制,以收取在此期间到达的邮件。
别忘了 MX 和 TXT 记录:如果没有在新的 DNS 上重新创建,邮件会收不到或进入垃圾箱。
第 6 步:切换 DNS
把域名指向新主机:可以在注册商处更改 nameservers,也可以把 A 记录改为新的 IP 地址。TTL 较短时,大多数访客会在几分钟内访问到新主机;有些网络缓存时间更长,所以请预留最多一天。
网站从新主机加载后,检查 SSL 证书是否已签发(参见免费 SSL 证书),并在取消旧主机前再保留几天。
迁移主机并不意味着迁移域名。把域名转移到另一家注册商是独立的一步,可以以后再做,也可以永远不做;注册商还可能拒绝在注册或上次转移后 60 天内进行转移。
免费迁移到 HytHost
每个 HytHost 虚拟主机套餐都包含一次免费网站迁移:
- 订购适合你网站的套餐。
- 提交工单,附上旧主机的访问权限或 cPanel 备份文件。
- 我们复制文件、数据库和邮箱账户。你在准备好时切换 DNS。
每个套餐都带有 cPanel、免费 SSL 以及保留 10 天的每日备份。刚接触 cPanel?请从什么是 cPanel开始。
常见问题
只要按顺序操作就不会:在你复制和测试新站时,旧站一直在运行,DNS 变更后访客会逐步转到新站。迁移期间避免编辑内容,或在新主机上重做这些修改。
这取决于 TTL。如果提前一天把 TTL 设为几分钟,大多数访客会在几分钟内看到新主机;使用通常较长的 TTL 时可能需要几个小时,有些网络最长会缓存一天。
不需要。域名可以留在当前注册商处;你只需通过 DNS 把它指向新主机。转移域名是独立的一步,如果你想把一切集中在一处,可以以后再做。
只要复制就不会。在新主机上创建账户,通过 IMAP 复制现有邮件,并在 DNS 切换后再复制一次,以收取期间到达的邮件。
可以。每个虚拟主机套餐都免费包含一次网站迁移:下单后提交工单,附上旧主机的访问权限或 cPanel 备份,我们会复制文件、数据库和邮箱账户。
这篇指南对你有帮助吗?