mcpField
M
migrate-to-hosting

migrate-to-hosting

github.com/hostinger云与 DevOps16569 次安装今天更新
代码仓库

关于 migrate-to-hosting

指导将网站迁移到 Hostinger 的技能,面向需要搬迁 WordPress、静态、PHP 或 Node.js 网站的操作者。流程强调先部署并验证副本,再切换 DNS,并涵盖迁移后的检查。

主要功能

  1. 01盘点站点类型、导出文件和 DNS
  2. 02在 Hostinger 创建目标站点
  3. 03迁移文件与数据库
  4. 04切换 DNS 前测试新站点
  5. 05切换后重建定时任务

适用场景

  1. 01迁移 WordPress 及其数据库
  2. 02搬迁静态或 PHP 网站
  3. 03迁移 Node.js 应用
  4. 04降低迁移期间访客受影响的风险

MCP 相关

说明如何通过 Hostinger Connector 的 MCP 服务执行各项操作,包括 hosting、wordpress、agency-hosting、domains 和 dns。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/hostinger/api-mcp-server --skill migrate-to-hosting

安装后在 Claude Code 中输入/migrate-to-hosting确认已加载。

详细介绍

迁移到托管服务

在 Hostinger 上的副本确认正常运行之前,旧主机将继续提供网站服务。DNS 最后迁移。

调用操作

  • 在首次调用每项操作之前,先阅读 search 返回的 inputSchema。如果某个名称被拒绝并提示未知,请搜索该步骤的用途(例如“导入 wordpress”)。
  • 使用 multi-execute 批量读取。批次只能串联同一服务器中的操作——Hostinger Connector 将 hosting、wordpress、agency-hosting、domains 和 dns 作为独立服务器运行。
  • 导入和部署会覆盖目标网站的内容;每次操作前都要确认目标。

1. 要迁移的内容

只询问无法推断的信息,以确定:

  • 网站类型: WordPress、静态网站、PHP(有或没有 MySQL)或 Node.js。
  • 导出内容:
    • WordPress——包含整个 WordPress 根目录(包括 wp-content 和 wp-config.php)的归档,以及一个 .sql 转储文件。
    • PHP——文件归档;如果应用有数据库,还需要一个 .sql 转储文件。
    • 静态网站——文件。Node.js——源代码或其 Git 仓库。
    • 如果没有导出文件,用户需通过旧主机的控制面板导出,或通过 SSH 执行:tar -czf site.tar.gz -C /path/to/site . 和 mysqldump --single-transaction -u USER -p DBNAME > db.sql。
  • 准确的首页 URL(https,带或不带 www)——WordPress 会将其保存在数据库中,因此新网站必须使用相同的 URL 响应。
  • 当前 DNS,以保留现有正常运行的配置:
dig +short NS DOMAIN; dig +short A DOMAIN; dig +short MX DOMAIN; dig +short TXT DOMAIN
  • 旧主机上的 Cron 作业——它们不会随文件一起迁移。

2. 在实际域名上创建网站

在要迁移的网站域名上创建 Hostinger 网站,而不要使用免费子域名:第 4 步会通过仅将这台机器指向 Hostinger 来进行测试,因此访客不会受到影响。

  • 共享和 Cloud:先调用 hosting_domains_verify-ownership。如果 is_accessible 为 false,用户需在当前 DNS 服务商处、现有记录旁添加返回的 TXT 记录,然后重新验证。接着使用 hosting_websites_create,并提供 domain 和 order_id(来自 hosting_orders_list);然后每隔 10–15 s 使用 domain 轮询 hosting_websites_list-setups,直到 status: completed。
  • Agency:调用 agency-hosting_website-setups_create,并提供 domain、flavor: "php-fpm"、与旧主机匹配的 settings.php.version(选项来自 agency-hosting_php_list-versions-for-order)以及来自 agency-hosting_datacenters_list 的 datacenter_code。使用 website_uid 轮询 agency-hosting_website-setups_status,直到状态为 completed。

3. 导入

hosting_deploy 和 agency-hosting_deploy-php-application 会读取这台机器上的文件,并且仅存在于本地的 hostinger-api-mcp 服务中。在托管服务(mcp.hostinger.com)上,先按 deploy-to-hosting 技能(“Without the local deploy operations”)中的说明上传文件,再使用下方方括号中指定的操作。

WordPress、Shared 和 Cloud: 使用 hosting_deploy 并提供 domain、path(站点目录或其压缩包)、databaseDump 和 type: "wordpress-site",即可上传两者、解压文件并导入数据库;大型站点需要几分钟。始终传入 type:如果留待自动检测,顶层没有 wp-config.php 或 wp-content 的目录会被当作普通站点,且不会导入数据库转储。[上传 site.zip 和 dump.sql,然后调用 wordpress_installations_import-website 并传入 archive_path 和 sql_path。]接着调用 wordpress_installations_detect 并传入 username,然后轮询 wordpress_installations_list 并传入 domain,直到安装项显示 is_valid: true。

静态站点,或不使用数据库的 PHP: 使用 hosting_deploy 并传入 domain 和 path [上传文件,然后调用 hosting_websites_deploy-static-site-archive];Agency:使用 agency-hosting_deploy-php-application [上传到 .h5g/,然后调用 agency-hosting_files_import-website-from-archive]。

使用数据库的 PHP,Shared 和 Cloud:

  1. 使用 hosting_databases_create 并传入生成的强密码;通过 hosting_databases_list 获取完整数据库名称、用户名和 host。
  2. 从这台机器导入数据库转储:用 hosting_databases_create-remote-connection 仅允许其公网 IP(curl -s https://api.ipify.org),运行 mysql -h HOST -u USER -p NAME < db.sql,然后用 hosting_databases_delete-remote-connection 删除规则。如果没有 MySQL 客户端,请使用 hosting_databases_phpmyadmin-link 并在那里导入。
  3. 在打包前,将新的数据库名称、用户名和密码填入应用的配置文件,主机设为 localhost;然后按上述方式部署。切勿在应用中使用 srvNNNN.hstgr.io 主机。

Node.js: 使用 deploy-to-hosting 技能部署。必须导入数据库转储时,使用 hosting_databases_create 创建数据库,而不要使用 hosting_databases_setup-website——后者不会显示导入所需的密码;并通过环境变量传递凭据。

Agency: 使用 agency-hosting_deploy-php-application 部署文件[或先上传,再调用 agency-hosting_files_import-website-from-archive];使用 agency-hosting_databases_create-website 创建数据库,并通过 hPanel 中的 phpMyAdmin 导入(没有可用的导入操作)。对于 WordPress,请在打包前将新的凭据写入 wp-config.php。

4. 切换 DNS 前测试

查找服务器地址:Agency 使用 details.ipv4;Shared 和 Cloud 使用 Hostinger 区域中 @ 的 A 记录(在域名上调用 dns_records_list),或 hPanel 显示的网站 IP。然后仅让这台机器指向该地址:

curl -sSk --resolve DOMAIN:443:IP -o /dev/null -w "%{http_code}\n" https://DOMAIN/
curl -sSk --resolve DOMAIN:443:IP https://DOMAIN/ | grep -o "TEXT FROM THE LIVE SITE"
curl -sSk --resolve DOMAIN:443:IP -o /dev/null -w "%{http_code}\n" https://DOMAIN/wp-login.php

这里需要使用 -k:只有切换 DNS 后,才能为该域名签发证书。检查首页、一个内页,以及 WordPress 的登录页。若要在浏览器中查看,用户需将 IP DOMAIN www.DOMAIN 添加到 hosts 文件,查看后再删除。趁访客仍能看到旧站点,立即修复所有问题。

5. 切换 DNS 和 SSL

从 DNS 步骤开始,按照 connect-domain 技能操作:保留步骤 1 中的所有 MX 和 TXT 记录,待域名解析到 Hostinger 后再安装 SSL。如果旧 DNS 由用户控制,提前一天将 A 记录的 TTL 降到 300,可以缩短切换时间。

6. 切换后

  • 不使用 --resolve 进行验证:curl -sSI https://DOMAIN/ 会显示 platform: hostinger。
  • 使用 hosting_cron-jobs_create 重新创建旧主机的定时任务(Agency:agency-hosting_cron-jobs_create-website)。
  • 让旧托管服务继续运行几天——部分解析器仍会缓存旧地址,托管在旧服务上的电子邮件也必须单独迁移。

评论

支持 Markdown