PHPシステムを安全に運用するために

黒田です。
イッパイヨンデナにおいて「しごと」「ちえ」カテゴリってなかなか記事があがらないことに気づいてしまいました。
しかも「ちえ」カテゴリに至っては、私が書いた「私がなったエンジニアで気を付けたい病気シリーズ」が一番上・・・。
「ちえ」カテゴリ狙いで、初めて仕事に関係のあることを投稿しようかなと思いました。

イッパイアッテナのWEBシステム開発

弊社ではWEBシステム開発の主要な言語としてPHPを採用しています。
とある記事ではWEBシステム開発における言語のシェアを調べたところ、JavaScriptとPHPが同率一位と書いてありました。
私は20年前に初めてPHPを触ってバージョンは4系だった記憶があり、今では8.3が最新と本当に長い期間メジャーな言語でいてくれてるのが分かります。
受託業務といった様々な案件の中で、古いバージョンのPHPに触れる機会もあるため、今回はシステムを制作したあとの保守運用について掘り下げていきたいと思います。

PHPのバージョン更新とパッチサポート

PHPはサーバーサイド言語として世界中で広く利用されていますが、バージョンが変わると機能やパフォーマンスが改善されるだけでなく、セキュリティの強化も図られます。
PHPの公式サポートポリシーでは、各バージョンに対して3年間のサポート期間が定められており、初めの2年間は「アクティブサポート」としてバグや新機能のパッチが提供され、最終年は「セキュリティサポート」のみが適用されます。
このセキュリティサポートが終了すると、そのバージョンにはセキュリティパッチが提供されなくなり、重大なリスクが伴うことになります。
そのため、遅くとも3年以内には最新のバージョンに移行し、バージョンアップに合わせてコードを見直すことで、システムの信頼性を維持する必要があります。

WordPressや各種フレームワークの更新

PHPで構築されたシステムは、WordPressといったオープンソースのシステムやLaravel、Symfonyなどのフレームワークを利用することが多く、これらのアップデートもシステムのセキュリティ維持には欠かせません。
WordPressは頻繁に更新が行われ、多くのサイトがプラグインやテーマを活用しているため、プラグインやテーマの更新も並行して行うことが重要です。
よく古いプラグインが入っていたりするのですが、脆弱性を突かれる危険性が高まります。

LaravelやSymfonyなどのPHPフレームワークもPHPのバージョンに依存しているため、PHPバージョンが変わると、それに対応した新しいバージョンが提供されます。
PHPバージョンのアップデートと合わせてフレームワークの更新を行うことで、最新のセキュリティ基準を満たすことができ、パフォーマンスの向上を図ることも可能になります。

アップデートのタイミングを計画する

PHPやフレームワーク、プラグインなどのアップデートは、計画的に実施することが重要です。
更新が必要な範囲とタイミングをあらかじめ定め、定期的なメンテナンスの一環としてバージョンアップ計画を策定することで、システムの安定性とセキュリティが確保できます。
たとえば、PHPバージョンのサポート期限を確認し、サポート終了の半年前を目安にアップデートの準備を始めるといった方針などを保守運用の要件として予め定義しておきましょう。

まとめ

システムは開発して終わりではなく、そのあとの保守運用も大切になります。
ソフトウェア視点でも、どのようなアップデートがいつ必要かを意識し、安定的なシステムを運用していきましょう。