mcpField
M
migrate-to-hosting

migrate-to-hosting

github.com/hostingerクラウド・DevOps16569 回インストール今日更新
リポジトリ

migrate-to-hosting について

WordPress、静的サイト、PHP、Node.jsをHostingerへ移行する担当者向けのスキルです。DNSを切り替える前に複製サイトを用意して検証し、切り替え後の確認や作業も案内します。

主な機能

  1. 01サイト種別、エクスポート、DNSの確認
  2. 02Hostingerに移行先サイトを作成
  3. 03サイトファイルとデータベースの移行
  4. 04DNS切り替え前のサイト検証
  5. 05移行後の定期ジョブ再作成

活用シーン

  1. 01WordPressサイトとデータベースの移行
  2. 02静的サイトまたはPHPサイトの移行
  3. 03Node.jsアプリケーションの移行
  4. 04移行中の訪問者への影響を抑制

MCP 対応

hosting、wordpress、agency-hosting、domains、dnsの各Hostinger Connector MCPサーバーを介した操作方法を説明します。

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/migrate-to-hostingを入力して読み込まれたか確認します。

詳細

ホスティングへの移行

Hostinger 上のコピーが正常に動作すると確認できるまで、以前のホストは引き続きサイトを提供します。DNS の切り替えは最後に行います。

操作の呼び出し

  • 各操作を初めて呼び出す前に、search が返す inputSchema を確認します。以下の名前が不明な操作として拒否された場合は、その手順で行うことを検索します(例:「import 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 がデータベースに保存されるため、新しいサイトも同じ 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_orders_list の order_id と domain を指定して hosting_websites_create を実行し、domain を指定して hosting_websites_list-setups を 10~15 秒ごとにポーリングし、status: completed になるまで待ちます。
  • Agency:domain、flavor: "php-fpm"、以前のホストと一致する settings.php.version(選択肢は agency-hosting_php_list-versions-for-order にあります)、および agency-hosting_datacenters_list から取得した datacenter_code を指定して agency-hosting_website-setups_create を実行します。website_uid のステータスが completed になるまで agency-hosting_website-setups_status をポーリングします。

3. インポート

hosting_deploy と agency-hosting_deploy-php-application はこのマシンからファイルを読み込み、ローカルの hostinger-api-mcp サーバーでのみ利用できます。ホスト型サーバー(mcp.hostinger.com)では、まず deploy-to-hosting スキルの「ローカルのデプロイ操作を使わない場合」の説明に従ってファイルをアップロードし、以下の角括弧内に記載された操作を使用します。

WordPress、Shared、Cloud: hosting_deploy に domain、path(サイトのディレクトリまたはそのアーカイブ)、databaseDump、type: "wordpress-site" を指定すると、ファイルとデータベースの両方をアップロードし、ファイルを展開してデータベースをインポートします。大規模なサイトでは数分かかります。必ず type を指定してください。検出に任せると、最上位に wp-config.php または wp-content がないディレクトリは通常のサイトとして扱われ、ダンプはインポートされません。[site.zip と dump.sql をアップロードしてから、archive_path と sql_path を指定して wordpress_installations_import-website を実行します。] 続いて username を指定して wordpress_installations_detect を実行し、インストールが is_valid: true で表示されるまで、domain を指定して wordpress_installations_list をポーリングします。

静的サイト、またはデータベースを使用しない PHP: domain と path を指定して hosting_deploy を実行します[アップロードしてから 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_setup-website ではなく hosting_databases_create を使用してください。後者ではインポートに必要なパスワードが開示されません。認証情報は環境変数で渡します。

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 の場合はログインページを確認します。ブラウザーで確認するには、ユーザーが hosts ファイルに IP DOMAIN www.DOMAIN を追加し、確認後に削除します。訪問者がまだ旧サイトを見ている間に、問題をすべて修正してください。

5. DNS と SSL を切り替える

DNS の手順から connect-domain スキルに従います。手順 1 のすべての MX レコードと TXT レコードを保持し、ドメインが Hostinger に解決されるようになったら SSL をインストールします。ユーザーが旧 DNS を管理している場合は、切り替えの 1 日前に A レコードの TTL を 300 に下げると、切り替えにかかる時間を短縮できます。

6. 切り替え後

  • --resolve を使わずに確認します。curl -sSI https://DOMAIN/ に platform: hostinger と表示されます。
  • 旧ホストの cron ジョブを hosting_cron-jobs_create で再作成します(Agency の場合は agency-hosting_cron-jobs_create-website)。
  • 旧ホスティングは数日間稼働させておきます。一部のリゾルバーは旧アドレスをキャッシュし続けることがあり、旧ホストのメールは別途移行する必要があります。

コメント