さよならPHP、WindowsでのPHPのサポートが「2022年11月28日」に完全終了:Microsoft Azure最新機能フォローアップ(132)
「PHP」は、古くから人気のあるWebアプリのためのスクリプト言語です。当初はLinux上のApache Webサーバと組み合わせて利用されることが多かったものの、Windowsの「IIS」でも古くからサポートされていました。2020年11月26日に最新バージョン「PHP 8.0」がリリースされましたが、Microsoftはこのバージョンをサポートする予定はありません。
IISとPHPの長い付き合い
「PHP」は、古くからWindowsの「インターネットインフォメーションサービス(IIS)」をWebサーバのプラットフォームとして正式にサポートしてきました。それは、2007年3月にZend TechnologiesがMicrosoftとの技術提携の成果として「FastCGI for IIS」(Zend Core 2.0)を提供したのが始まりです。
FastCGI for IISは、IIS 5.0(「Windows 2000 Server」に搭載)以降のWindowsプラットフォームを正式にサポートし、IIS 7.0(「Windows Server 2009」に搭載)からはFastCGIモジュールが標準搭載されるようになりました。
PHPは「Azure App Service」で正式にサポートされているランタイムスタックの一つです。Azure App Serviceでは、公式サポート(Official Support)および拡張サポート(Extended Support)が提供されているPHPのバージョンを、LinuxおよびWindowsのそれぞれについて同様に正式サポートしています(画面1)。
マイナーバージョンについては、拡張サポートが終了すると、SLA(Service Level Agreement)を維持しながら自動的に後継バージョンに移行してくれます。互換性問題を回避するためには、自動的な移行が実施される前に、テストして手動で後継バージョンに切り替えることをお勧めします(画面2)。
MicrosoftはWindows版PHP 8.0をサポートしない
現在は、WindowsおよびLinux版のPHP 7.2/7.3/7.4が正式にサポートされており、2021年1月時点で新規デプロイできるのはこれらのバージョンに限られます。直近では、「2021年2月1日」にPHP 5.6およびPHP 7.2の拡張サポートが終了します(表1)。
PHPバージョン | 公式サポート終了日 | 拡張サポート終了日 | OSサポート | |
---|---|---|---|---|
Linux | Windows | |||
PHP 5.6 | 2019年1月1日 | 2021年2月1日 | ○ | ○ |
PHP 7.0 | 2018年12月3日 | 2020年2月1日 | ○ | ○ |
PHP 7.1 | 2019年12月1日 | 2020年2月1日 | ○ | ○ |
PHP 7.2 | 2020年11月30日 | 2021年2月1日 | ○ | ○ |
PHP 7.3 | 2020年12月6日 | 2021年12月6日 | ○ | ○ |
PHP 7.4 | 2021年11月28日 | 2022年11月28日 | ○ | ○ |
PHP 8.0 | 2022年11月26日 | 2023年11月26日 | ○(対応予定) | × |
表1 Azure App ServiceにおけるPHPのサポート状況とサポート期限(2021年1月時点でPHP 8.0には未対応) |
PHP 7.1のWebアプリをデプロイしている場合は、拡張サポート終了日にPHP 7.3にアップグレードされますが、PHP 5.6のデプロイについてはサポート外となり、パッチ未適用の脆弱(ぜいじゃく)性が残ったままになることに注意してください。手動でPHP 7.3以降に移行する必要があります。
- PHP on App Service[英語](GitHub)
Windows版のPHPを利用している場合は、さらに重要な留意点があります。それは、Microsoftが「PHP 8.0」をWindowsプラットフォーム上でサポートしないということです。この方針は2020年7月に発表されました。
- Microsoft Support of PHP on Windows[英語](PHP Mailing Lists)
これは“PHP 8.0のWindows版バイナリが提供されない”ということではありません。PHP 8.0は2020年11月26日にリリースされていますが、PHP for WindowsのWebサイトでPHP 8.0のWindows版バイナリは提供されています。Microsoftは、WindowsのIISやAzure App ServiceなどのクラウドサービスでPHP 8.0をサポートしないということです。
そのため、Azure App ServiceのアプリでWindows版のPHPを利用している場合は、PHP 7.4の拡張サポートが終了する「2022年11月28日」以降は、未パッチの脆弱性の危険性が存在するままアプリが残ることになります。それまでに、Linux版のPHP 8.0以降に移行するなどの対応が必要になります。
- PHP 8.0.0 Release Announcement[英語](PHP)
- PHP for Windows[英語](PHP)
- Community support for PHP 7.4 is ending on 28 November 2022[英語](Microsoft Azure)
筆者紹介
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(2020-2021)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- クラウドネイティブな「.NET 5」が既存の.NET Frameworkアプリにもたらすインパクト
既存の.NET Frameworkアプリの.NET 5への移行に関する考慮事項やレガシーアプリのモダナイゼーションについて解説する連載。初回は、.NET統合の現状や.NET 5のリリースにおけるキャッチアップすべきことなどについて。 - Windows 10 May 2020 Update後のWindows Updateに“へん”化あり[その3]
2020年10月初め、Windows 10 May 2020 Update(バージョン2004)に3回目のオプションの更新(Cリリース)が提供されました。過去3回と同様、Windows 10 バージョン1809〜1909から1週間以上(今回は15日)、大幅に遅れての提供です。Windows 10 バージョン2004におけるCリリースのインストール挙動は、やはり何かおかしいです。幾つかのパターンで試してみました。 - Microsoftが「ML.NET 1.5.2」を公開、.NET開発者向け機械学習フレームワーク
Microsoftは、.NET開発者向けのオープンソース機械学習(ML)フレームワークの最新版「ML.NET 1.5.2」を公開した。Model Builderツールで「Azure ML」を使ってオブジェクト検出モデルをトレーニングできるようになった他、ML.NET CLIで画像分類モデルをローカルでトレーニングすることも可能になった。 - クロスプラットフォーム対応の「PowerShell Core 7.0」が正式リリース
Microsoftは2020年3月4日(米国時間)、オープンソースでクロスプラットフォーム対応の「PowerShell Core」の最新バージョン、「PowerShell Core 7.0」を正式にリリースし、一般提供を開始しました。