在 Azure 中创建 PHP Web 应用

Azure Web 应用提供高度可缩放、自修补的 Web 托管服务。 本快速入门教程演示如何将 PHP 应用部署到 Azure Web 应用。 在 Cloud Shell 中使用 Azure CLI 创建 Web 应用,并使用 Git 将 PHP 代码示例部署到 Web 应用。

在 Azure 中运行的应用示例]

可以在 Mac、Windows 或 Linux 计算机上执行以下步骤。 安装先决条件后,大约需要五分钟完成这些步骤。

先决条件

若要完成本快速入门教程,需先执行以下操作:

Note

如果没有 Azure 订阅,可在开始前创建一个试用帐户

将示例下载到本地

在终端窗口中运行以下命令。 这样会将示例应用程序克隆到本地计算机,并导航到包含示例代码的目录。

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

在本地运行应用

打开终端窗口并使用 php 命令启动内置 PHP Web 服务器,在本地运行应用程序。

php -S localhost:8080

打开 Web 浏览器并导航到 http://localhost:8080 处的示例应用。

此时会看到“Hello World!” 消息(来自页面中显示的示例应用)。

在本地运行的示例应用

在终端窗口中,按 Ctrl+C 退出 Web 服务器。

登录 Azure

将使用 Azure CLI 2.0 创建在 Azure 中托管应用所需的资源。 使用 az login 命令登录到 Azure 订阅,并按照屏幕上的说明进行操作。

az login

Note

在 Azure China 中使用 Azure CLI 2.0 之前,请首先运行 az cloud set -n AzureChinaCloud 更改云环境。 如果要切换回全局 Azure,请再次运行 az cloud set -n AzureCloud

配置部署用户

使用 az webapp deployment user set 命令创建部署凭据。

在 Web 应用中进行 FTP 和本地 Git 部署时需要一个部署用户。 用户名和密码都为帐户级别。 它们与 Azure 订阅凭据不同。

在以下命令中,将 <user-name> 和 <password> 替换为新的用户名和密码。 用户名必须唯一。 密码长度必须至少为 8 个字符,其中包含以下 3 种元素中的两种:字母、数字、符号。

az webapp deployment user set --user-name <username> --password <password>

如果收到 'Conflict'. Details: 409 错误,请更改用户名。 如果收到 'Bad Request'. Details: 400 错误,请使用更强的密码。

只创建此部署用户一次;可对所有 Azure 部署使用此用户。

Note

记录用户名和密码。 稍后需要使用它们来部署 Web 应用。

创建资源组

使用 az group create 命令创建资源组。

资源组是在其中部署和管理 Azure 资源(例如 Web 应用、数据库和存储帐户)的逻辑容器。

以下示例在“chinanorth”位置创建名为“myResourceGroup”的资源组。 若要查看应用服务支持的所有位置,请运行 az appservice list-locations 命令。

az group create --name myResourceGroup --location chinanorth

通常在附近的区域中创建资源组和资源。

创建 Azure 应用服务计划

使用 az appservice plan create 命令创建应用服务计划。

Note

应用服务计划表示用于托管应用的物理资源集合。 分配到应用服务计划的所有应用程序将共享该计划定义的资源。 托管多个应用时,此共享可让你节省资金。

应用服务计划定义:

  • 区域(中国东部和中国北部)。
  • 实例大小(小、中、大)
  • 规模计数(默认情况为 1 到 20 个实例)
  • SKU(免费、共享、基本、标准、高级)

以下示例在免费定价层中创建名为 myAppServicePlan 的应用服务计划:

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

创建应用服务计划后,Azure CLI 将显示类似于以下示例的信息:

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

创建 Web 应用

使用 az webapp create 命令在 myAppServicePlan 应用服务计划中创建一个 Web 应用。

在以下示例中,将 <app_name> 替换为全局唯一的应用名称(有效字符是 a-z0-9-)。 运行时设置为 PHP|7.0。 若要查看所有受支持的运行时,请运行 az webapp list-runtimes

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

创建 Web 应用后,Azure CLI 会显示类似于以下示例的输出:

Local git is configured with url of 'https://<username>@<app_name>.scm.chinacloudsites.cn/<app_name>.git'
{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "cloningInfo": null,
  "containerSize": 0,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "<app_name>.chinacloudsites.cn",
  "deploymentLocalGitUrl": "https://<username>@<app_name>.scm.chinacloudsites.cn/<app_name>.git",
  "enabled": true,
  < JSON data removed for brevity. >
}

已创建了一个空的新 Web 应用并启用了 Git 部署。

Note

Git 远程的 URL 将显示在 deploymentLocalGitUrl 属性中,其格式为 https://<username>@<app_name>.scm.chinacloudsites.cn/<app_name>.git。 保存此 URL,因为稍后将需要它。

浏览到新建的 Web 应用。 将 <应用名称> 替换为唯一的应用名称。

http://<app name>.chinacloudsites.cn

空 Web 应用页

从 Git 推送到 Azure

在本地终端窗口中,将 Azure 远程功能添加到本地 Git 存储库。

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

使用以下命令推送到 Azure 远程功能以部署应用。 提示输入密码时,请确保输入在配置部署用户中创建的密码,而不是用于登录到 Azure 门户的密码。

git push azure master

此命令可能需要花费几分钟时间运行。 运行时,该命令会显示类似于以下示例的信息:

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.chinacloudsites.cn/<app_name>.git
   cc39b1e..25f1805  master -> master

在本地浏览到应用

使用 Web 浏览器浏览到已部署的应用程序。

http://<app_name>.chinacloudsites.cn

PHP 示例代码正在 Azure 应用服务 Web 应用中运行。

在 Azure 中运行的示例应用

祝贺你! 现已将第一个 PHP 应用部署到应用服务。

在本地更新并重新部署代码

使用本地文本编辑器打开 PHP 应用中的 index.php 文件,并对 echo 旁边的字符串中的文本稍微进行更改:

echo "Hello Azure!";

在本地终端窗口中,提交在 Git 中所做的更改,然后将代码更改推送到 Azure。

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

完成部署后,切换回“浏览到应用”步骤中打开的浏览器窗口,然后刷新页面。

已更新的在 Azure 中运行的示例应用

管理新 Azure Web 应用

转到 Azure 门户管理创建的 Web 应用。

在左侧菜单中单击“应用服务”,然后单击 Azure Web 应用的名称。

在门户中导航到 Azure Web 应用

随后会显示 Web 应用的概述页。 在此处可以执行基本的管理任务,例如浏览、停止、启动、重启和删除。

Azure 门户中的“应用服务”边栏选项卡

左侧菜单提供用于配置应用的不同页面。

清理资源

若要删除通过此快速入门创建的所有资源,请运行以下命令:

az group delete --name myResourceGroup