- SERVICE
Webサイト・CMSの保守管理・運用
- WORKS
- ABOUT US
- NEWS & COLUMN
- RECRUIT
皆さんこんにちは。
taneCREATIVEの「ちほうタイガー」です。
この記事は、PHPのバージョン情報とサポート期限についてまとめたもので、2024年12月2日に改訂しています。
PHPとはWebサイトやアプリを開発する際に広く採用されているプログラミング言語であり、Webサーバー上で動いてプログラムを実行するサーバーサイドスクリプト言語に分類されます。
このPHPは、WordPressを始めとする主要なCMS(コンテンツ・マネジメント・システム)の多くがPHPで開発されていることから、Webサイトを運用する皆さんにとっても重要な言語と言えるでしょう。
安全で円滑なWebサイトの運用のためには、PHPもWordPressと同様に最新バージョンへのアップデートが欠かせません。どちらかが古いだけでサイトが攻撃されるリスクが高まるほか、表示速度の低下などにも繋がります。
一方で、不用意なアップデートでWebサイトが表示されないといった不具合も起こりかねません。
この記事ではPHPのバージョン情報とサポート期限についてまとめた上で、PHPの脆弱性についてもご紹介したいと思います。
少しでも皆様のお役に立てる記事にできればと思います。
どうぞよろしくお願い致します。
2024年12月2日現在、最新のPHPのバージョンは8.4系統であり、PHPの公式がセキュリティサポートをしているバージョンは、8.1、8.2、8.3、8.4の4系統のみとなっています。
PHPのバージョンが8.0、8.1.30、8.2.25、8.3.13以下の場合には、緊急レベルの脆弱性が存在する可能性があります。
アクティブサポート期限とは、特定のPHPバージョンに関して、新しい機能が追加される最後の期限を指します。この期間中には、新機能の追加や改善が行われたり、バグ修正が行われます。また、当然ながらセキュリティパッチも提供されます。
PHPでは、通常、アクティブサポート期限はリリース日から概ね2年後としています。
セキュリティサポート期限とは、特定のPHPバージョンに関して、セキュリティ関連のアップデートが提供される最後の期間を指します。
前述のように、アクティブサポート期間中にはセキュリティサポートも提供されますが、アクティブサポート終了後、セキュリティサポート終了期限までの期間は、基本的に重大なセキュリティホールに関するパッチのみが提供され、新機能の追加等は行われません。
PHPでは、これまでアクティブサポート終了後1年間をセキュリティサポート期間としていましたが、2024年3月21日に提出されたRFC(Request for Comments、PHPコミュニティで新しい機能や仕様変更を提案するための文書)が承認されたことから、セキュリティサポート期間はアクティブサポート終了後2年間となりました(期限も12月31日に統一されました)。
このため、セキュリティサポート期限は、リリース日から概ね4年後の12月31日となります。
PHPのバージョン | リリース日 | アクティブサポート期限 | セキュリティサポート期限 |
8.4 | 2024年11月21日 | 2026年12月31日 | 2028年12月31日 |
8.3 | 2023年11月23日 | 2025年12月31日 | 2027年12月31日 |
8.2 | 2022年12月8日 | 2024年12月31日 | 2026年12月31日 |
8.1 | 2021年11月25日 | 2023年11月25日 | 2025年12月31日 |
8.0 | 2020年11月26日 | 2022年11月26日 | 2023年11月26日 |
7.4 | 2019年11月28日 | 2021年11月28日 | 2022年11月28日 |
7.3 | 2018年12月6日 | 2020年12月6日 | 2021年12月6日 |
7.2 | 2017年11月30日 | 2019年11月30日 | 2020年11月30日 |
7.1 | 2016年12月1日 | 2018年12月1日 | 2019年12月1日 |
7.0 | 2015年12月3日 | 2018年1月10日 | 2019年1月10日 |
5.6 | 2014年8月28日 | 2017年12月31日 | 2018年12月31日 |
5.5 | 2013年6月20日 | 2015年7月10日 | 2016年7月21日 |
5.4 | 2012年3月1日 | 2014年9月14日 | 2015年9月3日 |
5.3 | 2009年6月30日 | 2011年6月30日 | 2014年8月14日 |
5.2 | 2006年11月2日 | 2008年11月2日 | 2011年1月6日 |
5.1 | 2005年11月24日 | 2006年8月24日 | 2006年8月24日 |
5.0 | 2004年7月13日 | 2005年9月5日 | 2005年9月5日 |
※グレーのバージョンはセキュリティサポートが終了しています。
※終了しているバージョンのセキュリティサポート終了期限については、公式サイトのUnsupported Branchesのページに記載の日付を正としています。
※5.5以下のアクティブサポート期限については、公式サイトにて情報を見つけることができず、endoflife.dateのPHPページを参照しています。
PHP8系統に関係する脆弱性のうち、CVSS 3の基準で緊急(9.0~10.0)の脆弱性情報を掲載します。
脆弱性情報 | 深刻度 | 影響を受けるバージョン | 修正されたバージョン |
CVSS v3 9.8 (緊急) |
PHP 8.3.0から8.3.13 PHP 8.2.0から8.2.25 PHP 8.1.0から8.1.30 |
PHP8.3.14 PHP8.2.26 PHP8.1.31 |
|
CVSS v3 9.8 (緊急) |
PHP8.3.0から8.3.7 PHP8.2.0から8.2.19 PHP5.0.0から8.1.28 |
PHP8.3.8 PHP8.2.20 PHP8.1.29 |
|
CVSS v3 9.8 (緊急) |
PHP8.2.0から8.2.8 PHP8.1.0から8.1.21 PHP8.0.0から8.0.29 |
PHP8.2.9 PHP8.1.22 PHP8.0.30 |
|
CVSS v3 9.4(緊急) |
PHP8.3.0から8.3.4 PHP8.2.0から8.2.17 PHP8.1.0から8.1.27 |
PHP8.3.5 PHP8.2.18 PHP8.1.28 |
|
CVSS v3 9.8(緊急) |
PHP8.1.0から8.1.11 PHP8.0.0から8.0.24 PHP7.2.0から7.4.32 |
PHP8.1.12 PHP8.0.25 PHP7.4.33 |
|
CVSS v3 9.8(緊急) |
PHP8.1.0から8.1.7 | PHP8.1.8 | |
CVSS v3 9.8(緊急) |
PHP8.1.0から8.1.2 PHP8.0.0から8.0.15 PHP7.4.0から7.4.27 |
PHP8.1.3 PHP8.0.16 PHP7.4.28 |
その他の脆弱性情報については、下記コラムをご覧ください。
・PHP8.xの脆弱性情報一覧
・PHP7.4の脆弱性情報一覧
・PHP7.3の脆弱性情報一覧
・PHP7.2の脆弱性情報一覧
・PHP7.1の脆弱性情報一覧
・PHP7.0の脆弱性情報一覧
・PHP5.6の脆弱性情報一覧
・PHP5.5の脆弱性情報一覧
・PHP5.4の脆弱性情報一覧
・PHP5.3の脆弱性情報一覧
・PHP5.2の脆弱性情報一覧
・PHP5.1の脆弱性情報一覧
・PHP5.0の脆弱性情報一覧
taneCREATIVEは、Web制作事業を提供していますので、レンタルサーバーにも触れる機会が多い会社です。
そこで、当社がよく使用するレンタルサーバーのPHPへの対応状況をまとめておきます。
さくらのレンタルサーバーでは、セキュリティアップデートが終了したバージョンについては提供終了としていましたが、2023年9月14日のPHPの提供ポリシー更新より、PHP公式の更新が行われないため提供に支障が出る問題が出た場合を除き、セキュリティサポート終了後も提供を続けることに提供方針を変更しています。
しかしながら、下記リスクについて明記されていることから、PHP公式のセキュリティサポートが終了しているバージョンについては、提供はするが非推奨という方針であると推察されます。
・セキュリティパッチなどが提供されないため、脆弱性への対応ができません。
・重大なセキュリティ問題が発覚した場合は、即日提供を終了する場合があります。
・さくらのレンタルサーバが利用しているOSの対応範囲外となった場合、事前にOSアップデートの告知に記載の上、OSのバージョンアップをもって提供を終了いたします。
・提供終了の場合、終了バージョンに一番近い上位のマイナーバージョンに変更いたします。状況によっては、メジャーバージョンへ変更される場合もあります。
2024年12月2日現在におけるさくらのレンタルサーバーでのPHP提供状況は次の通りです。
未提供 | PHP8.4 |
提供中(推奨) | PHP8.2、PHP8.3 |
提供中(非推奨) | PHP5.2、PHP5.3、PHP5.4、PHP5.6、PHP7.4、PHP8.0、PHP8.1 |
※2023年9月14日のPHPの提供ポリシー更新には、PHP8.1のセキュリティサポート期限を2024年11月25日と記載されていましたが、2025年12月31日と変更されています。しかしながら、実際にさくらのレンタルサーバーでPHPを選択する画面では「PHP8.1[非推奨]2025/12 サポート終了予定」と表示されていることから、PHP8.1については非推奨のままとする方針であると考えられます。
エックスサーバーでは、PHP提供状況を「ご利用いただけるPHPのバージョン」として明確に掲出しており、2024年11月29日現在におけるエックスサーバーでのPHP提供状況は次の通りです。
未提供 | PHP8.4 |
提供中(推奨) | PHP8.2、PHP8.3 |
提供中(非推奨) | PHP5.1、PHP5.3、PHP5.4、PHP5.5、PHP5.6、PHP7.0、PHP7.1、PHP7.2、PHP7.3、PHP7.4、PHP8.0、PHP8.1 |
Webサイトの安全性と高いパフォーマンスを維持するためには、PHPのバージョンアップが必要となりますが、バージョンアップ作業には次のようなトラブルが起きる可能性があります。
なお、下記トラブルは、影響範囲の大きいPHPのメジャーバージョンアップ(PHP7.4系統を8系統にする等)の際にはかなりの確率で起こることを想定しておく必要があります。
特に、PHPを5系統から8系統に一気にバージョンアップをする場合には、しっかりとした準備の上でアップデートを試行することをお勧めいたします。
基本的にWordPressのような有名なCMSであれば、PHPの最新版リリースに合わせてWordPress本体のバージョンアップも提供される為、それほど問題は起こりませんが、制作会社のオリジナルCMS等のマイナーなCMSの場合には、PHPの最新バージョンアップに対応していないケースがあります。
WordPressであればサードパーティ製のテーマ、プラグイン等が、PHPの最新バージョンアップに対応していないケースがあります。
また、エンジニアが独自で開発したソースコード(例:お問い合わせフォーム)等が、PHPの最新バージョンアップに対応していないケースがよくあります。
新しいPHPバージョンは、使用しているデータベースとの互換性問題を引き起こすケースがあります。特に大きなシステムや複雑なデータベースを使用している場合、アップデートは慎重に行う必要があります。
上記のようなPHPのバージョンアップに伴うトラブルを避けるために、バージョンアップは次の手順で実施しましょう。
① バックアップを取得し、アップデート後のトラブルを解決できない場合に元に戻せるように準備します。
② テスト環境(ステージング環境 or ディベロップ環境)にてPHPのバージョンアップを実施します。
③ テスト環境にてWebサイトの表示、機能、管理画面が正常に挙動するかの確認をします。
④ 問題があった場合、全ての原因を特定、順に対応していきます。
⑤ テスト環境にてWebサイトの表示、機能、管理画面が問題なく挙動することを確認後、本番環境にてアップデートを実施します。
⑥ 本番環境にて再度、Webサイトの表示、機能、管理画面が問題なく挙動することを確認します。
PHPのバージョンアップは上記のように複雑な作業工程を伴うため、安全に行うためには専門的な知識が必要です。
初めての方においてはテスト環境を実装するだけでも大変骨の折れる作業になるかと思います。
taneCREATIVE社は、「リモートによるWebアプリケーションのセキュリティ対策をパッケージ化、首都圏大手企業に提供」している点が評価され、2021年にJ-Startup NIIGATAに選定されている企業であり、PHP、MySQL、MariaDBについても知見を有しています。
※「J-Startup NIIGATA」とは、経済産業省が2018年に開始したJ-Startupプログラムの地域版として、新潟発のロールモデルとなるスタートアップ企業群を明らかにし、官民連携により集中的に支援する仕組みを構築することで、新潟県におけるスタートアップ・エコシステムを強化する取組です。
PHPを使用したWebサイト制作やアップデートを含む保守管理に関しては、こちらのお問合せよりお気軽にご相談ください。
taneCREATIVEに所属する謎のトラ。
2024年12月2日改訂
2024年11月29日改訂
2024年11月21日改訂
2024年9月25日改訂
2024年7月26日改訂