Azure に PHP Web アプリを作成するCreate a PHP web app in Azure

注意

この記事では、Windows 上の App Service にアプリをデプロイします。This article deploys an app to App Service on Windows. Linux 上の App Service に展開するには、「App Service on Linux での PHP Web アプリの作成」をご覧ください。To deploy to App Service on Linux, see Create a PHP web app in App Service on Linux.

Azure App Service では、高度にスケーラブルな自己適用型の Web ホスティング サービスを提供しています。Azure App Service provides a highly scalable, self-patching web hosting service. このクイック スタート チュートリアルでは、Azure App Service に PHP アプリをデプロイする方法を説明します。This quickstart tutorial shows how to deploy a PHP app to Azure App Service. Azure CLI を使って Cloud Shell で Web アプリを作成し、Git を使用して Web アプリに PHP のサンプル コードをデプロイします。You create the web app using the Azure CLI in Cloud Shell, and you use Git to deploy sample PHP code to the web app.

Azure で実行されるサンプル アプリ

以下の手順は、Mac、Windows、または Linux コンピューターを使って実行できます。You can follow the steps here using a Mac, Windows, or Linux machine. 前提条件のインストールを終えてから、以降の手順を完了するまでに約 5 分かかります。Once the prerequisites are installed, it takes about five minutes to complete the steps.

Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。If you don't have an Azure subscription, create a free account before you begin.

前提条件Prerequisites

このクイック スタートを完了するには、以下が必要です。To complete this quickstart:

サンプルをローカルでダウンロードするDownload the sample locally

ターミナル ウィンドウで次のコマンドを実行します。In a terminal window, run the following commands. これにより、ローカル コンピューターにサンプル アプリケーションが複製され、サンプル コードを含むディレクトリに移動します。This will clone the sample application to your local machine, and navigate to the directory containing the sample code.

git clone https://github.com/Azure-Samples/php-docs-hello-world
cd php-docs-hello-world

アプリをローカルで実行するRun the app locally

アプリケーションをローカルで実行すると、アプリケーションを Azure にデプロイするとどう表示されるかを把握できます。Run the application locally so that you see how it should look when you deploy it to Azure. ターミナル ウィンドウを開き、php コマンドを使用して組み込みの PHP Web サーバーを起動します。Open a terminal window and use the php command to launch the built-in PHP web server.

php -S localhost:8080

Web ブラウザーを開き、http://localhost:8080 のサンプル アプリに移動します。Open a web browser, and navigate to the sample app at http://localhost:8080.

サンプル アプリケーションから "Hello World! "You see the Hello World! というメッセージがページに表示されます。message from the sample app displayed in the page.

ローカルで実行されるサンプル アプリ

ターミナル ウィンドウで Ctrl + C キーを押して、Web サーバーを終了します。In your terminal window, press Ctrl+C to exit the web server.

Azure Cloud Shell を使用するUse Azure Cloud Shell

Azure では、ブラウザーを介して使用できる対話型のシェル環境、Azure Cloud Shell がホストされています。Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Cloud Shell では、bashPowerShell のいずれかを使用して Azure サービスを操作できます。Cloud Shell lets you use either bash or PowerShell to work with Azure services. ローカル環境に何もインストールしなくても、Cloud Shell にプレインストールされているコマンドを使用して、この記事のコードを実行できます。You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Azure Cloud Shell を起動するには:To launch Azure Cloud Shell:

オプションOption 例とリンクExample/Link
コード ブロックの右上隅にある [使ってみる] を選択します。Select Try It in the upper-right corner of a code block. [試してみる] を選択しても、コードは Cloud Shell に自動的にコピーされません。Selecting Try It doesn't automatically copy the code to Cloud Shell. Azure Cloud Shell の [使ってみる] の例
https://shell.azure.com に移動するか、 [Cloud Shell を起動する] ボタンを選択して、ブラウザーで Cloud Shell を開きます。Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. 新しいウィンドウで Cloud Shell を起動するLaunch Cloud Shell in a new window
Azure portal の右上にあるメニュー バーの [Cloud Shell] ボタンを選択します。Select the Cloud Shell button on the top-right menu bar in the Azure portal. Azure Portal の [Cloud Shell] ボタン

Azure Cloud Shell でこの記事のコードを実行するには:To run the code in this article in Azure Cloud Shell:

  1. Cloud Shell を起動します。Launch Cloud Shell.

  2. [コピー] ボタンを選択して、コード ブロックをコードにコピーします。Select the Copy button on a code block to copy the code.

  3. Windows と Linux では Ctrl + Shift + V キー、macOS では Cmd + Shift + V キーを使用して、コードを Cloud Shell セッションに貼り付けます。Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.

  4. Enter キーを押して、コードを実行します。Press Enter to run the code.

デプロイ ユーザーを構成するConfigure a deployment user

FTP およびローカルの Git では、"デプロイ ユーザー" を使用して Azure Web アプリにデプロイできます。FTP and local Git can deploy to an Azure web app by using a deployment user. デプロイ ユーザーを構成すると、すべての Azure デプロイでこのユーザーを使用できます。Once you configure your deployment user, you can use it for all your Azure deployments. アカウントレベルのデプロイのユーザー名とパスワードは、Azure サブスクリプションの資格情報とは異なります。Your account-level deployment username and password are different from your Azure subscription credentials.

デプロイ ユーザーを構成するには、Azure Cloud Shell で az webapp deployment user set コマンドを実行します。To configure the deployment user, run the az webapp deployment user set command in Azure Cloud Shell. <username> と <password> を、デプロイ ユーザーのユーザー名とパスワードで置き換えます。Replace <username> and <password> with a deployment user username and password.

  • ユーザー名は、Azure 内で一意である必要があり、ローカル Git プッシュの場合は "@" シンボルを含めることはできません。The username must be unique within Azure, and for local Git pushes, must not contain the ‘@’ symbol.
  • パスワードは長さが 8 文字以上で、文字、数字、記号のうち 2 つを含む必要があります。The password must be at least eight characters long, with two of the following three elements: letters, numbers, and symbols.
az webapp deployment user set --user-name <username> --password <password>

JSON 出力には、パスワードが null として表示されます。The JSON output shows the password as null. 'Conflict'. Details: 409 エラーが発生した場合は、ユーザー名を変更します。If you get a 'Conflict'. Details: 409 error, change the username. 'Bad Request'. Details: 400 エラーが発生した場合は、より強力なパスワードを使用します。If you get a 'Bad Request'. Details: 400 error, use a stronger password.

Web アプリのデプロイに使用するユーザー名とパスワードを記録します。Record your username and password to use to deploy your web apps.

リソース グループの作成Create a resource group

リソース グループとは、Web アプリ、データベース、ストレージ アカウントなどの Azure リソースのデプロイと管理に使用する論理コンテナーです。A resource group is a logical container into which Azure resources like web apps, databases, and storage accounts are deployed and managed. たとえば、後から簡単な手順で一度にリソース グループ全体を削除することもできます。For example, you can choose to delete the entire resource group in one simple step later.

Cloud Shell で az group create コマンドを使用して、リソース グループを作成します。In the Cloud Shell, create a resource group with the az group create command. 次の例では、myResourceGroup という名前のリソース グループを "西ヨーロッパ" の場所に作成します。The following example creates a resource group named myResourceGroup in the West Europe location. Free レベルの App Service がサポートされているすべての場所を表示するには、az appservice list-locations --sku FREE コマンドを実行します。To see all supported locations for App Service in Free tier, run the az appservice list-locations --sku FREE command.

az group create --name myResourceGroup --location "West Europe"

通常は、現在地付近の地域にリソース グループおよびリソースを作成します。You generally create your resource group and the resources in a region near you.

コマンドが完了すると、リソース グループのプロパティが JSON 出力に表示されます。When the command finishes, a JSON output shows you the resource group properties.

Azure App Service プランの作成Create an Azure App Service plan

Cloud Shell で az appservice plan create コマンドを使用して、App Service プランを作成します。In the Cloud Shell, create an App Service plan with the az appservice plan create command.

次の例では、Free 価格レベルの myAppServicePlan という名前の App Service プランを作成します。The following example creates an App Service plan named myAppServicePlan in the Free pricing tier:

az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE

App Service プランが作成されると、Azure CLI によって、次の例のような情報が表示されます。When the App Service plan has been created, the Azure CLI shows information similar to the following example:

{ 
  "adminSiteName": null,
  "appServicePlanName": "myAppServicePlan",
  "geoRegion": "West Europe",
  "hostingEnvironmentProfile": null,
  "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan",
  "kind": "app",
  "location": "West Europe",
  "maximumNumberOfWorkers": 1,
  "name": "myAppServicePlan",
  < JSON data removed for brevity. >
  "targetWorkerSizeId": 0,
  "type": "Microsoft.Web/serverfarms",
  "workerTierName": null
} 

Web アプリを作成するCreate a web app

Cloud Shell で az webapp create コマンドを使用して、myAppServicePlan App Service プランに Web アプリを作成します。In the Cloud Shell, create a web app in the myAppServicePlan App Service plan with the az webapp create command.

次の例では、<app_name> をグローバルに一意のアプリ名に置き換えてください (有効な文字は a-z0-9-)。In the following example, replace <app_name> with a globally unique app name (valid characters are a-z, 0-9, and -). ランタイムは PHP|7.0 に設定されています。The runtime is set to PHP|7.0. サポートされているすべてのランタイムを確認するには、az webapp list-runtimes を実行します。To see all supported runtimes, run az webapp list-runtimes.

# Bash
az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app_name> --runtime "PHP|7.0" --deployment-local-git
# PowerShell
az --% webapp create --resource-group myResourceGroup --plan myAppServicePlan --name <app_name> --runtime "PHP|7.0" --deployment-local-git

Web アプリが作成されると、Azure CLI によって次の例のような出力が表示されます。When the web app has been created, the Azure CLI shows output similar to the following example:

Local git is configured with url of 'https://<username>@<app_name>.scm.azurewebsites.net/<app_name>.git'
{
  "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 アプリが作成されました。You’ve created an empty new web app, with git deployment enabled.

注意

Git リモートの URL は deploymentLocalGitUrl プロパティに https://<username>@<app_name>.scm.azurewebsites.net/<app_name>.git 形式で出力されます。The URL of the Git remote is shown in the deploymentLocalGitUrl property, with the format https://<username>@<app_name>.scm.azurewebsites.net/<app_name>.git. この URL は後で必要になるので保存しておいてください。Save this URL as you need it later.

新しく作成された Web アプリに移動します。Browse to your newly created web app. <app name> は、前の手順で作成された一意のアプリ名で置き換えます。Replace <app name> with your unique app name created in the prior step.

http://<app name>.azurewebsites.net

新しい Web アプリは次のようになります。Here is what your new web app should look like:

空の Web アプリ ページ

Git から Azure へのプッシュPush to Azure from Git

"ローカル ターミナル ウィンドウ" で、ローカル Git リポジトリに Azure リモートを追加します。Back in the local terminal window, add an Azure remote to your local Git repository. <deploymentLocalGitUrl-from-create-step> を、Web アプリの作成に関するセクションで保存した Git リモートの URL に置き換えます。Replace <deploymentLocalGitUrl-from-create-step> with the URL of the Git remote that you saved from Create a web app.

git remote add azure <deploymentLocalGitUrl-from-create-step>

アプリをデプロイするために、次のコマンドで Azure リモートにプッシュします。Push to the Azure remote to deploy your app with the following command. Git Credential Manager によって資格情報の入力を求めるメッセージが表示されたら、Azure portal へのサインインに使用する資格情報ではなく、デプロイ ユーザーの構成に関するセクションで作成した資格情報を入力してください。When prompted for credentials by Git Credential Manager, make sure that you enter the credentials you created in Configure a deployment user, not the credentials you use to sign in to the Azure portal.

git push azure master

このコマンドの実行には、数分かかる場合があります。This command may take a few minutes to run. 実行中、次の例のような情報が表示されます。While running, it displays information similar to the following example:

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 'master'.
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 https://<app_name>.scm.azurewebsites.net/<app_name>.git
   cc39b1e..25f1805  master -> master

アプリの参照Browse to the app

Web ブラウザーを使用して、デプロイされたアプリケーションを参照します。Browse to the deployed application using your web browser.

http://<app_name>.azurewebsites.net

PHP のサンプル コードは、Azure App Service の Web アプリで実行されています。The PHP sample code is running in an Azure App Service web app.

Azure で実行されるサンプル アプリ

お疲れさまでした。Congratulations! App Service に初めての PHP アプリをデプロイしました。You've deployed your first PHP app to App Service.

コードをローカルで更新して再デプロイするUpdate locally and redeploy the code

ローカルのテキスト エディターを使用して、PHP アプリ内の index.php ファイルを開き、echo に続く文字列の中のテキストを少し変更します。Using a local text editor, open the index.php file within the PHP app, and make a small change to the text within the string next to echo:

echo "Hello Azure!";

ローカル ターミナル ウィンドウで、変更を Git にコミットし、コード変更を Azure にプッシュします。In the local terminal window, commit your changes in Git, and then push the code changes to Azure.

git commit -am "updated output"
git push azure master

デプロイが完了したら、「アプリの参照」の手順で開いたブラウザー ウィンドウに戻り、ページを更新します。Once deployment has completed, return to the browser window that opened during the Browse to the app step, and refresh the page.

Azure で実行される更新済みのサンプル アプリ

新しい Azure アプリの管理Manage your new Azure app

Azure Portal に移動し、作成した Web アプリを管理します。Go to the Azure portal to manage the web app you created.

左側のメニューで [App Services] をクリックしてから、お客様の Azure アプリの名前をクリックします。From the left menu, click App Services, and then click the name of your Azure app.

Azure アプリへのポータル ナビゲーション

Web アプリの [概要] ページが表示されます。Your web app's Overview page will be displayed. ここでは、参照、停止、開始、再開、削除のような基本的な管理タスクを行うことができます。Here, you can perform basic management tasks like browse, stop, start, restart, and delete.

Azure Portal の [App Service] ページ

左側のメニューは、アプリを構成するためのさまざまなオプションを示しています。The left menu provides different options for configuring your app.

リソースのクリーンアップClean up resources

前の手順では、リソース グループ内に Azure リソースを作成しました。In the preceding steps, you created Azure resources in a resource group. これらのリソースが将来必要になると想定していない場合、Cloud Shell で次のコマンドを実行して、リソース グループを削除します。If you don't expect to need these resources in the future, delete the resource group by running the following command in the Cloud Shell:

az group delete --name myResourceGroup

このコマンドの実行には、少し時間がかかる場合があります。This command may take a minute to run.

次の手順Next steps