Skip to content

Latest commit

 

History

History
57 lines (43 loc) · 2.88 KB

refactor-corporate-site.md

File metadata and controls

57 lines (43 loc) · 2.88 KB
title date draft tags
PHPを静的サイトジェネレータとして使う
2020-04-28 11:40:00 +0900
false
php
github-actions
CI
CD

tl;dr

  • Static Site Generater を使わなくても PHP だけでも簡単なものは作れるぞ
  • ツールのインストールしなくても Linux だとデフォルトで入っていることが多いのでツールのインストールがいらない
  • PHPはテンプレートエンジンです

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

主な技術スタック

  • EC2
  • CentOS
  • nginx
  • php-fpm

問題点

  • 会社のHPは重い処理をするわけでもなく、アクセスが多いわけでもないのでEC2で動かすほどでもない
  • 会社のサービスが動いているサーバーと同居しているので、サーバーが落ちるとサービスとホームページ両方とも見れなくなる
  • 更新はほぼされないが、ミドルウェアなどのアップデートしないといけない

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

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

候補

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

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

  • PHP
  • GithubActions
  • Firebase Hosting

CI/CD フロー

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

結果

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