PHPを静的サイトジェネレータとして使う

tl;dr

最近仕事でサーバーの調査などをしてたら、会社のホームページが以下のような構成になっていた。

主な技術スタック

問題点

中身を見ると動的に中身を変更したいというわけではなく、ヘッダーとフッターをインクルードしているだけだった。 それならば html ファイルにしてまとめてしまえば問題ないかなと考えた。

そこまで考えれば静的サイトとして作ってしまおうと考えた。

候補

しかし、すでにある php ファイルを乗せ換えるのも面倒だった。
そこで思いついたのが、既存の php ファイルを実行して、html を生成して、それを hosting すれば解決なのではということに気づいた。
最近では php をテンプレートエンジンとして使う人はあまりいないと思うが、もともとはテンプレートエンジンだし正しい使い方なのではという気持ちになった。

新環境の主な技術スタック

CI/CD フロー

  1. master branch の更新をフックに GithubActions が実行
  2. PHP実行して html ファイル生成
  3. 生成したファイルを Firebase Hosting へアップロード

結果

これで、サーバーの同居問題、ミドルウェアのアップデートから解放された。またアクセスを見ても Firebase Hosting の無料枠で収まっており追加でお金もかからない。また、副産物として、証明書の管理からも解放された。
教訓としては、解決したい問題に向き合ってできるだけスマートに問題を解決するにはたくさんの選択肢を持ちそこから適切な手段を選びましょう。