Azure App Service のポータルから選択出来なかった PHP 8.1 ランタイム(延長サポート対象)を Azure CLI で構成する
いわさです。
キャッチアップ出来ていなかったのですが PHP 8.1 以降の延長サポート(セキュリティサポート)期間が 1 年から 2 年に伸びていることに気が付きました。
もともとは 2024 年 11 月 25 日で延長サポート終了だったと思うのですが以下の RFC で見直されたみたいです。(Date: 2024-03-21)
2 年にする + 年末までということで、全体で 4 年強サポートされることになっています。(PHP 8.1 についてはセキュリティサポートが 2 年強、8.2 以降はアクティブサポートが 2 年強)
上記に伴ってちょっと PHP 8.1 で確認したいことがあり、Azure App Service でサッと環境を用意しようとしたのですが、ポータル上のランタイムスタックとして選択できなくなっていることに気が付きました。
ただ、Azure CLI からであれば構成出来るので本記事ではその方法を紹介します。
本日時点では、サポート期限が切れている PHP 8.0 環境も用意出来ました。
Azure CLI でバージョンを指定する
Azure CLI の場合は次のコマンドで PHP & Linux のサポートされているランタイム一覧を取得可能です。
今回知ったのですが、サポート終了している PHP 8.0 まだ使おうと思ったら使えるのか...!
% az webapp list-runtimes --os linux | grep PHP
"PHP:8.3",
"PHP:8.2",
"PHP:8.1",
"PHP:8.0",
参考:Configure PHP apps - Azure App Service | Microsoft Learn
とはいえ、実際に App Service に設定出来るかわからなかったのでそこまで試してみます。
新規作成でも良いのですが、今回はポータルから PHP 8.2 アプリケーションを作成し、そこに旧バージョンで構成変更を行います。
以下は PHP 8.0 を設定する例です。同様の手順で PHP 8.1 も設定出来ました。
% az webapp config set --resource-group hoge1008 --name hoge1007php --linux-fx-version "PHP|8.0"
App settings have been redacted. Use `az webapp/logicapp/functionapp config appsettings list` to view.
{
"acrUseManagedIdentityCreds": false,
"acrUserManagedIdentityId": null,
"alwaysOn": false,
:
"webSocketsEnabled": false,
"websiteTimeZone": null,
"windowsFxVersion": null,
"xManagedServiceIdentityId": null
}
ポータルのプロパティからランタイムスタックを確認してみると、PHP 8.0 であることが確認出来ます。
念の為内部的なバージョンも確認してみます。
リモートアクセスしてphpinfo
を使ってみます。
Last login: Sun Oct 6 20:46:57 2024 from 169.254.129.2
_____
/ _ \ __________ _________ ____
/ /_\ \\___ / | \_ __ \_/ __ \
/ | \/ /| | /| | \/\ ___/
\____|__ /_____ \____/ |__| \___ >
\/ \/ \/
A P P S E R V I C E O N L I N U X
Documentation: http://aka.ms/webapp-linux
PHP quickstart: https://aka.ms/php-qs
PHP version : 8.0.30
Note: Any data outside '/home' is not persisted
root@hoge1007ph_a73ccc7b66:/home# cd site/wwwroot/
root@hoge1007ph_a73ccc7b66:/home/site/wwwroot# cat index.php
<?php
phpinfo();
?>
PHP バージョンが 8.0.30 であることが確認出来ました。
さいごに
本日は Azure App Service のポータルから選択出来なかった PHP 8.1 ランタイム(延長サポート対象)を Azure CLI で構成してみました。
バージョンアップ検証のためにサポート期限切れや延長サポート中のバージョンを使った環境が必要になることがあると思いますが、Azure CLI 経由で作成出来ることを覚えておきたいと思います。