一人十郷 - takuminasuno.com 一人十郷
takuminasuno.com
ビジネス
2026/10/18

WordPressサイトをAIネイティブ×GitHubベースのContent as Code開発基盤に移管する手順をまとめてみた

こんにちは。那須野です。

生成AIの進化が急激に進み、分かる人ならコーディングが簡単にできるようになってきた昨今、WordPressのようなノーコード・・・というかローコードシステムは、サイトによっては逆に制約となって邪魔になるケースが出てきました。

 

「であればいっそのこと、全部、生成AIで管理すればいいのではないか?」

 

しかも最近は、おそらくは「悪意を持った人間たちが生成AIを駆使して成果を出してきた」結果として、企業の情報漏洩が大量発生しています。

ありとあらゆるサイトやアプリが落とされていく中で、データベースを持つ動的なサイトを運営することのリスクもそれなりに高くなっていると感じていたので、であればWordPressを静的なサイトに変える、つまり管理画面がないサイトに変えることを検討してみたくなりました。

ということで、WordPressで運用していたサイトを、"AIネイティブ"に管理できるような仕組みということで「AIネイティブ×GitHubベースのContent as Code開発基盤」を再構築してみることにしました。

AIネイティブ×GitHubベースのContent as Code開発基盤とは?

ここで言う"AIネイティブ"とは何か?

  • 生成AIがサイト内のコンテンツを自由に管理・更新でき、生成AIに最適化されている。つまり、あらゆるコンテンツ・・・記事内容も画像もメタデータもデザインもが、GitHubでコードとして管理できる。
  • 一方で、完全に静的なHTMLのサイトにしてしまうと、デザインなどの共通部分の管理負担が高くなりすぎるため、最低限のPHPファイルを利用することは許容する。

この方針で考えたときに、以下のようなアーキテクチャが浮かびました。

これであれば

  • コンテンツは全てGitHubの専用リポジトリで管理し、生成AI経由で自由に更新する
  • 記事情報自体はMDファイル(OKFフォーマット)で軽量に管理し、ユーザーアクセス時にはIndex.php経由でHTML化する設計とする
  • 更新したコンテンツはGitHubアクション経由でdev環境に自動反映して確認し、問題なければprod環境(本番環境)に手動反映する

といった形でシンプルに運用できて、よさそうです。

なお、「AIネイティブ×GitHubベースのContent as Code開発基盤」というのはアーキテクチャの特徴を適切に表現していると思う一方で長くて呼びにくいので、以降は思想としては合っていなくもない「準静的サイト」という言葉を使いたいと思います。

前提条件

ちなみに自分の場合、作業する環境は以下のとおりです。

  • サーバー:ConoHa VPS
  • サーバーOS:Rocky Linux 9.4(※CentOSと同系列)
  • Webサーバー:Apache(certbotインストール済)
  • OS:Windows 11
  • SSHクライアント:PowerShell
  • 生成AI:ChatGPT(他プロジェクトにてGitHubにChatGPT Codex Connectorを設定済)

 

それでは、この方向で具体的な手順を見てみましょう。

WordPressサイトを準静的サイトに移管する手順

それでは具体的な手順について、備忘録的にまとめていきます。

1.GitHubの専用リポジトリを作る

まず、すべてのコンテンツを集約するリポジトリを新設します。明確な意図がない限りは、Privateで作成します。

ChatGPTからアクセスできるリポジトリを制限している場合、新設したリポジトリについて、ユーザーのSettings > Integrations > Applicationsから、ChatGPT Codex Connectorのリポジトリアクセスに加えます。

2.コンテンツをGitHub上に再構築する

WordPressで管理していたコンテンツを、GitHub上に再構築します。ここで言うコンテンツとは主に

  • 記事情報(タイトル、本文HTML、メタ情報など)
  • 画像
  • テーマ

になるかなと思います。設計思想に基づいて、生成AIも使いながら具体的に設計→構築します。

3.VPS上にサイトディレクトリを作成する

GitHubアクションでサイトコンテンツを同期する先の環境としてdev, prodディレクトリを作ります。

ディレクトリは、

  • /var/www/html
    • {site_name}
      • dev
      • prod

のように、階層を作ります。

4.デプロイユーザーの作成(なければ)

デプロイユーザーがない場合、以下のように作成し、


続いてSSHD設定にてログイン可能ユーザー(AllowUsers)に登録し、ローカルからログインできることを確認しておきます。

5.サイトディレクトリへの権限付与

デプロイユーザーについて、新設したサイトディレクトリに対して権限を付与します。

6.認証鍵の設定

続いて、ローカル環境(PowerShellなど)でキーペア(公開鍵と秘密鍵)を生成します。鍵名の区切り文字はハイフンではなくアンダーバーにしておきます。


その後、VPS側に戻って、公開鍵の方を追記します。


↓追記内容


続いてGitHubリポジトリに戻り、Settings > Environmentsからdevとprodに対してそれぞれシークレットと変数を登録します。設計にもよりますが、以下のようなイメージです。

  • Secrets
    • REMOTE_HOST
    • REMOTE_PORT
    • REMOTE_USER
    • REMOTE_PATH
    • SSH_PRIVATE_KEY
  • Variables
    • HEALTHCHECK_URL

7.DNS設定

dev, prodのURLからアクセスできるように、それぞれDNS設定を行います。

現行のWordPressサイトが生きている状態なので、いったんreplace-dev.{site_url}, replace.{site_url}という移行期用URLにて設定し、問題なければ現行サイトのURLと差し替えることにします。

自分の場合、お名前.comでドメイン管理しているので、管理画面の該当ドメインを開き、ネームサーバー→ドメインDNS設定→ドメインDNS→DNSレコード設定→レコード追加にて、AレコードをサーバーのIPアドレスに向ける形で設定します。

その後、コマンドプロンプトで「nslookup {YOUR_SUB_DOMAIN}」を実行してIPアドレスが表示されることを確認します。

8.SSL証明書の発行

VPSに戻り、設定したサブドメインに対してSSL証明書を発行します。

9.バーチャルホストの設定

オンラインからdev,prodのサイトを開けるよう、バーチャルホストを設定します。現行のWordPressサイトが生きている状態なので、いったんreplace-dev.{site_url}, replace.{site_url}という移行期用URLにて設定し、問題なければ現行サイトのURLと差し替えることにします。

まずdev。


↓追記内容


続いてprod。


↓追記内容


その後、問題ないことを確認してからApacheを再起動します。

10.dev確認とprod確認

オートでVPSのdevリポジトリにはデプロイされるので、dev環境を確認し、問題なければGitHubアクションからprodに手動デプロイし、prod環境を確認します。

これで問題なければ、最終段階です。

11.DNSとバーチャルホストの再設定

本番URLをアクセスしたときに、WordPressサイトではなく準静的サイトにアクセスされるよう、DNS設定とバーチャルホストを再設定します。

具体的には、DNS設定のAレコードのホスト名、バーチャルホストのServerNameを書き換え、

  • replace-dev.{site_url} → dev.{site_url}
  • replace.{site_url} → {site_url}

ついでにところどころあった「replace」の文字あたりを削除します。

そして、現行サイトのバーチャルホスト設定は隔離したうえで、最後にApacheを再起動し、SSL証明書を再発行します。


これにて完了です!

 

追伸:GitHubのEnvironmentsにて

  • HEALTHCHECK_URL

を設定していたので、そのURLだけ正規版に切り替えておきます。

振り返り

ということで、WordPressサイトを「AIネイティブ×GitHubベースのContent as Code開発基盤」=「準静的サイト」に移管する手順の備忘録でした。

コード自体を再構成するのは生成AIで割とスムーズにいくのですが、やはり動作確認しながら本番反映となると、DNS設定やバーチャルホストの設定あたりが負担になりますね。新規で作るのと比べても、移行は負担が5割増しくらいのイメージです。

とはいえ、これでWordPressの管理画面を見ずに生成AI経由で記事の執筆やテーマの管理、機能拡張などが自由にできるようになるので、その効果は計り知れません。

以上、この記事がいつか誰かの助けになりますように。

同じカテゴリーの投稿もどうぞ!
【備忘録】生成AIが作ったWebアプリをバーチャルホストを使って独自ドメインで自前のサーバーに展開する手順
ビジネス
2026/02/15
【備忘録】生成AIが作ったWebアプリをバーチャルホストを使って独自ドメインで自前のサーバーに展開する手順
【備忘録】WordPressテーマをGitHub経由で管理・更新する作業手順
ビジネス
2026/02/08
【備忘録】WordPressテーマをGitHub経由で管理・更新する作業手順
ChatGPTのチャット画面から日本語で指示してBigQueryのデータを更新しながら分析してみた話
ビジネス
2025/08/27
ChatGPTのチャット画面から日本語で指示してBigQueryのデータを更新しながら分析してみた話
ChatGPTのチャット画面から分析指示を書いて、BigQueryにアクセスさせてデータ分析させる話
ビジネス
2025/06/02
ChatGPTのチャット画面から分析指示を書いて、BigQueryにアクセスさせてデータ分析させる話
Dataformによるデータパイプラインの構築と運用の進め方【基本の総集編】
ビジネス
2025/03/17
Dataformによるデータパイプラインの構築と運用の進め方【基本の総集編】
ブログ著者について
那須野 拓実(なすの たくみ)。たなぐら応援大使(福島県棚倉町)。トリプレッソを勝手に応援していた人。元語学屋。時々写真垢とか手芸垢。山とか滝とか紅葉とかが好き。本業はナレッジマネジメントとかデータ分析とかの何でも屋。コロナワクチン接種済み。