警告
Windows 上の PHP は、2022 年 11 月にサポート終了を迎えました。 PHP は App Service on Linux でのみサポートされています。 この記事は参考用です。
Azure App Service は、非常にスケーラブルな、パッチを自己適用する Web ホスティング サービスを提供します。 このクイックスタート チュートリアルでは、Azure App Service on Windows に PHP アプリをデプロイする方法を説明します。
Azure CLI を使って Cloud Shell で Web アプリを作成し、Git を使用して Web アプリに PHP のサンプル コードをデプロイします。
以下の手順は、Mac、Windows、または Linux コンピューターを使って実行できます。 前提条件のインストールを終えてから、以降の手順を完了するまでに約 5 分かかります。
Azure アカウントをお持ちでない場合は、開始する前に無料アカウントを作成してください。
前提条件
このクイックスタートを完了するには、以下が必要です。
サンプルをローカルでダウンロードする
ターミナル ウィンドウで次のコマンドを実行します。 これにより、サンプル アプリケーションがローカル マシンに複製され、サンプル コードを含むディレクトリに移動します。
git clone https://github.com/Azure-Samples/php-docs-hello-world cd php-docs-hello-world既定のブランチが
mainであることを確認します。git branch -m mainヒント
App Service では、ブランチ名の変更は必要ありません。 ただし、多くのリポジトリで既定のブランチが
mainに変更されているため、このクイック スタートでは、mainからリポジトリをデプロイする方法も示します。
アプリをローカルで実行する
アプリケーションをローカルで実行し、Azure にデプロイしたときの表示を確認します。 ターミナル ウィンドウを開き、
phpコマンドを使用して組み込みの PHP Web サーバーを起動します。php -S localhost:8080Web ブラウザーを開き、
http://localhost:8080のサンプル アプリに移動します。ページに表示されているサンプル アプリの Hello World! メッセージが表示されます。
ターミナル ウィンドウで Ctrl + C キーを押して、Web サーバーを終了します。
Azure Cloud Shell
Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。 Cloud Shell で Bash または PowerShell を使用して、Azure サービスを操作できます。 ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。
Azure Cloud Shell を開始するには、次の手順に従います。
| オプション | 例とリンク |
|---|---|
| コードまたはコマンド ブロックの右上隅にある [使ってみる] を選択します。 [使ってみる] を選択しても、コードまたはコマンドは Cloud Shell に自動的にはコピーされません。 |
|
| https://shell.azure.com に移動するか、[Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。 |
|
| Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。 |
|
Azure Cloud Shell を使用するには、次の手順に従います。
Cloud Shell を起動します。
コード ブロック (またはコマンド ブロック) の [コピー] ボタンを選択し、コードまたはコマンドをコピーします。
Windows と Linux では Ctrl+Shift+V キーを選択し、macOS では Cmd+Shift+V キーを選択して、コードまたはコマンドを Cloud Shell セッションに貼り付けます。
Enter キーを選択して、コードまたはコマンドを実行します。
デプロイ ユーザーを構成する
FTP とローカルの Git では、"デプロイ ユーザー" を使用して Azure Web アプリにデプロイできます。 デプロイ ユーザーを構成すると、すべての Azure デプロイでこのユーザーを使用できます。 アカウントレベルのデプロイのユーザー名とパスワードは、Azure サブスクリプションの資格情報とは異なります。
デプロイ ユーザーを構成するには、Azure Cloud Shell で az webapp deployment user set コマンドを実行します。 <username> と <password> を、デプロイ ユーザーのユーザー名とパスワードで置き換えます。
- ユーザー名は、Azure 内で一意である必要があり、ローカル Git プッシュの場合は '@' シンボルを含めることはできません。
- パスワードは長さが 8 文字以上で、文字、数字、記号のうち 2 つを含む必要があります。
az webapp deployment user set --user-name <username> --password <password>
JSON 出力には、パスワードが null として表示されます。
'Conflict'. Details: 409 エラーが発生した場合は、ユーザー名を変更します。
'Bad Request'. Details: 400 エラーが発生した場合は、より強力なパスワードを使用します。
Web アプリのデプロイに使用するユーザー名とパスワードを記録します。
リソース グループを作成する
リソース グループとは、Web アプリ、データベース、ストレージ アカウントなどの Azure リソースのデプロイと管理に使用する論理コンテナーです。 たとえば、後から簡単な手順で一度にリソース グループ全体を削除することもできます。
Cloud Shell で az group create コマンドを使用して、リソース グループを作成します。 次の例では、myResourceGroup という名前のリソース グループを "西ヨーロッパ" の場所に作成します。
Free レベルの App Service でサポートされているすべての場所を表示するには、az appservice list-locations --sku FREE コマンドを実行します。
az group create --name myResourceGroup --location "West Europe"
通常は、現在地付近のリージョンにリソース グループおよびリソースを作成します。
コマンドが完了すると、リソース グループのプロパティが JSON 出力に表示されます。
Azure App Service プランの作成
Cloud Shell で az appservice plan create コマンドを使用して、App Service プランを作成します。
次の例では、myAppServicePlan 価格レベルの という名前の App Service プランを作成します。
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE --is-linux
App Service プランが作成されると、Azure CLI によって、次の例のような情報が表示されます。
{
"freeOfferExpirationTime": null,
"geoRegion": "West Europe",
"hostingEnvironmentProfile": null,
"id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
"kind": "linux",
"location": "West Europe",
"maximumNumberOfWorkers": 1,
"name": "myAppServicePlan",
< JSON data removed for brevity. >
"targetWorkerSizeId": 0,
"type": "Microsoft.Web/serverfarms",
"workerTierName": null
}
Web アプリを作成する
Cloud Shell で
myAppServicePlanコマンドを使用して、az webapp createApp Service プランに Web アプリを作成します。次の例では、
<app-name>をグローバルに一意のアプリ名に置き換えてください (有効な文字はa-z、0-9、-)。 ランタイムはPHP|7.4に設定されています。 サポートされているすべてのランタイムを確認するには、az webapp list-runtimesを実行します。az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app-name> --runtime 'PHP|8.1' --deployment-local-gitWeb アプリが作成されると、Azure CLI によって次の例のような出力が表示されます。
Local git is configured with url of <URL> { "availabilityState": "Normal", "clientAffinityEnabled": true, "clientCertEnabled": false, "cloningInfo": null, "containerSize": 0, "dailyMemoryTimeQuota": 0, "defaultHostName": "<app-name>.azurewebsites.net", "enabled": true, < JSON data removed for brevity. > }Git デプロイが有効な、空の新しい Web アプリが作成されました。
注
git リモートの URL が
deploymentLocalGitUrlプロパティに表示されます。 この URL は後で必要になるので保存しておいてください。新しく作成された Web アプリに移動します。
新しい Web アプリは次のようになります。
Git から Azure へのプッシュ
mainブランチをデプロイするため、App Service アプリの既定のデプロイ ブランチをmainに設定する必要があります。 (デプロイ ブランチの変更を参照)。Cloud Shell で、DEPLOYMENT_BRANCHコマンドを使用してaz webapp config appsettings setアプリ設定を設定します。az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'ローカル ターミナル ウィンドウで、ローカル Git リポジトリに Azure リモートを追加します。 <deploymentLocalGitUrl-from-create-step> を、Web アプリの作成に関するセクションで保存した Git リモートの URL に置き換えます。
git remote add azure <deploymentLocalGitUrl-from-create-step>アプリをデプロイするために、次のコマンドで Azure リモートにプッシュします。 Git Credential Manager で資格情報の入力を求められたら、Azure portal へのサインインに使用する資格情報ではなく、「ローカル Git デプロイを構成する」で作成した資格情報を入力してください。
git push azure mainこのコマンドの実行には数分かかることがあります。 実行中、次の例のような情報が表示されます。
Counting objects: 2, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 352 bytes | 0 bytes/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Updating branch 'main'.
remote: Updating submodules.
remote: Preparing deployment for commit id '25f18051e9'.
remote: Generating deployment script.
remote: Running deployment command...
remote: Handling Basic Web Site deployment.
remote: Kudu sync from: '/home/site/repository' to: '/home/site/wwwroot'
remote: Copying file: '.gitignore'
remote: Copying file: 'LICENSE'
remote: Copying file: 'README.md'
remote: Copying file: 'index.php'
remote: Ignoring: .git
remote: Finished successfully.
remote: Running post deployment command(s)...
remote: Deployment successful.
To <URL>
cc39b1e..25f1805 main -> main
アプリの参照
Web ブラウザーを使用して、デプロイされたアプリケーションを参照します。
PHP のサンプル コードは、Azure App Service の Web アプリで実行されています。
お疲れさまでした。 App Service に初めての PHP アプリをデプロイしました。
コードをローカルで更新して再デプロイする
ローカルのテキスト エディターを使用して、PHP アプリ内の
index.phpファイルを開き、echoに続く文字列の中のテキストを少し変更します。echo "Hello Azure!";ローカル ターミナル ウィンドウで、変更を Git にコミットし、コード変更を Azure にプッシュします。
git commit -am "updated output" git push azure mainデプロイが完了したら、「アプリの参照」の手順で開いたブラウザー ウィンドウに戻り、ページを更新します。
新しい Azure アプリの管理
Azure portal に移動し、作成した Web アプリを管理します。 [App Services] を検索して選択します。
使用する Azure アプリの名前を選択します。
Web アプリの [概要] ページが表示されます。 ここでは、参照、停止、再開、削除のような基本的な管理タスクを行うことができます。
Web アプリ メニューに、アプリを構成するためのさまざまなオプションが示されます。
リソースをクリーンアップする
前の手順では、リソース グループ内に Azure リソースを作成しました。 これらのリソースが将来必要になると想定していない場合、Cloud Shell で次のコマンドを実行して、リソース グループを削除します。
az group delete --name myResourceGroup
このコマンドの実行には 1 分かかることがあります。
Azure App Service は、Web ホスティング用の高度にスケーラブルな自己修正プログラム サービスを提供します。 このクイックスタートでは、Azure App Service on Linux に PHP アプリをデプロイする方法について説明します。
以下の手順は、Mac、Windows、または Linux コンピューターを使って実行できます。 前提条件がインストールされると、手順を完了するのに約 10 分かかります。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- Git
- PHP
- Azure CLI: これを使用し、任意のシェルでコマンドを実行し、Azure リソースを作成して構成します。
サンプル リポジトリのダウンロード
- Azure CLI
- ポータル
次の手順では、 Azure CLI を使用して Web アプリを作成し、サンプル PHP コードを Web アプリにデプロイします。
Azure Cloud Shell を使用できます。
ターミナル ウィンドウで、次のコマンドを実行して、ローカル コンピューターにサンプル アプリケーションを複製し、プロジェクト ルートに移動します。
git clone https://github.com/Azure-Samples/php-docs-hello-world cd php-docs-hello-worldアプリケーションをローカルで実行するには、
phpコマンドを使用して組み込みの PHP Web サーバーを起動します。php -S localhost:8080Web ブラウザーで
http://localhost:8080のサンプル アプリケーションを参照します。
ターミナル ウィンドウで Ctrl + C キーを押して、Web サーバーを終了します。
アプリケーション コードを Azure にデプロイする
- Azure CLI
- ポータル
Azureリソースを作成し、別々のAzure CLIコマンドでアプリケーションをデプロイします。
ターミナルで <app-name> をグローバルに一意な名前に置き換え、リソースグループ、Linux App Serviceプラン、PHPウェブアプリを作成します:
az group create --name myResourceGroup --location eastus
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku P0v3 --is-linux
az webapp create --name <app-name> --resource-group myResourceGroup --plan myAppServicePlan --runtime "PHP:8.2"
-
azコマンドが認識されない場合は、Azure CLI がインストールされていることを確認してください。 -
--runtime "PHP:8.2"引数は PHP 8.2 の Web アプリを作成します。--is-linuxは App Service on Linux を選択します。 -
--sku P0v3引数は有料の Premium v3 プランを選択します。eastusを希望する地域に置き換えてください。 利用可能な地域はaz account list-locationsでリストできます。
ルートに php-docs-hello-world ディレクトリ内のファイルを含み、親ディレクトリ自体は含めない ZIP アーカイブを作成します。 LinuxやmacOSでは、アプリケーションディレクトリから zip -r ../app.zip . -x '*/.git/*' '*/.env*' 実行してください。 Windowsでは、アプリケーションディレクトリからPowerShellでCompress-Archive -Path * -DestinationPath ..\app.zipを実行します。 次に、それをデプロイします:
az webapp deploy --resource-group myResourceGroup --name <app-name> --src-path ../app.zip --type zip
https://<app-name>.azurewebsites.net を参照して、デプロイされたアプリケーションを確認します。
PHP のサンプル コードが、Azure App Service で実行されています。
お疲れさまでした。 Azure portal を使用して App Service に初めての PHP アプリをデプロイしました。
アプリを更新して再デプロイする
- Azure CLI
- ポータル
php-docs-hello-worldディレクトリを探し、ローカルのテキストエディタを使用してindex.phpファイルを開きます。
echoの横の文字列内のテキストに小さな変更を加えます。echo "Hello Azure!";変更を保存し、アプリケーション コードを Azure にデプロイする で説明されているように、アプリケーション ファイルから ../app.zip を再作成し、再デプロイしてください。
az webapp deploy --resource-group myResourceGroup --name <app-name> --src-path ../app.zip --type zipデプロイが完了したら、「アプリの参照」の手順で開いたブラウザー ウィンドウに戻り、ページを更新します。
新しい Azure アプリの管理
Azure portal に移動し、作成した Web アプリを管理します。 [App Services] を検索して選択します。
Azure アプリを選択して開きます。
Web アプリの [概要] ページが表示されます。 ここでは、参照、停止、再開、削除のような基本的な管理タスクを行うことができます。
Web アプリ メニューに、アプリを構成するためのさまざまなオプションが示されます。
リソースをクリーンアップする
サンプル アプリの作業が完了したら、アプリのすべてのリソースを Azure から削除して、追加料金を回避し、Azure サブスクリプションを整理しておくことができます。 リソース グループを削除して、リソース グループ内のすべてのリソースも削除することが、アプリのすべての Azure リソースを削除する最も簡単な方法です。
- Azure CLI
- ポータル
az group delete コマンドでリソース グループを削除します。
az group delete --name myResourceGroup
このコマンドの実行には、少し時間がかかります。