在 Azure 应用服务中创建 PHP Web 应用
Azure 应用服务提供高度可缩放、自修复的 Web 托管服务。 本快速入门教程演示如何将 PHP 应用部署到 Windows 上的 Azure 应用服务。
使用 Azure CLI 创建 Web 应用,并使用 Git 将 PHP 代码示例部署到 Web 应用。
可以在 Mac、Windows 或 Linux 计算机上执行此处的步骤。 安装先决条件后,大约需要五分钟完成这些步骤。
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
完成本快速入门教程需要:
在终端窗口中运行以下命令。 这样会将示例应用程序克隆到本地计算机,并导航到包含示例代码的目录。
git clone https://github.com/Azure-Samples/php-docs-hello-world cd php-docs-hello-world
确保默认分支为
main
。git branch -m main
提示
应用服务不需要更改分支名称。 但是,由于许多存储库将其默认分支更改为
main
,因此本快速入门还介绍如何从main
部署存储库。
在本地运行应用程序,以便你能了解将它部署到 Azure 时它的外观应该是什么样的。 打开一个终端窗口并使用
php
命令启动内置的 PHP Web 服务器。php -S localhost:8080
打开 Web 浏览器并导航到
http://localhost:8080
处的示例应用。页面中会显示该示例应用发出的“Hello World!”消息。
在终端窗口中,按 Ctrl+C 退出 Web 服务器。
可以使用“deployment user”将 FTP 和本地 Git 部署到 Azure Web 应用。 配置部署用户之后,可对所有 Azure 部署使用此用户。 帐户级部署用户名和密码不同于 Azure 订阅凭据。
若要配置部署用户,请在 Azure CLI 中运行 az webapp deployment user set 命令。 将 <username> 和 <password> 替换为部署用户的用户名和密码。
- 用户名在 Azure 中必须唯一,并且为了本地Git推送,不能包含“@”符号。
- 密码必须至少为 8 个字符,且具有字母、数字和符号这三种元素中的两种。
az webapp deployment user set --user-name <username> --password <password>
JSON 输出会将该密码显示为 null
。 如果收到 'Conflict'. Details: 409
错误,请更改用户名。 如果收到 'Bad Request'. Details: 400
错误,请使用更强的密码。
请记录你要用于部署 Web 应用的用户名和密码。
资源组是在其中部署和管理 Azure 资源(例如 Web 应用、数据库和存储帐户)的逻辑容器。 例如,可以选择在使用完之后通过一个简单的步骤删除整个资源组。
在 Azure CLI 中,使用 az group create
命令创建资源组。 以下示例在“中国北部”位置创建名为“myResourceGroup”的资源组。 若要查看“免费”层中应用服务支持的所有位置,请运行 az appservice list-locations --sku FREE
命令。
az group create --name myResourceGroup --location "China North"
通常在附近的区域中创建资源组和资源。
此命令完成后,JSON 输出会显示资源组属性。
在 Azure CLI 中,使用 az appservice plan create
命令创建一个应用服务计划。
以下示例在免费定价层中创建名为 myAppServicePlan
的应用服务计划:
az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku FREE --is-linux
创建应用服务计划后,Azure CLI 会显示类似于以下示例的信息:
{ "freeOfferExpirationTime": null, "geoRegion": "China North", "hostingEnvironmentProfile": null, "id": "/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan", "kind": "linux", "location": "China North", "maximumNumberOfWorkers": 1, "name": "myAppServicePlan", < JSON data removed for brevity. > "targetWorkerSizeId": 0, "type": "Microsoft.Web/serverfarms", "workerTierName": null }
在你的本地 Shell 中,使用
az webapp create
命令在myAppServicePlan
应用服务计划中创建一个 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-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", "enabled": true, < JSON data removed for brevity. > }
现在你已经创建了一个新的空 Web 应用并启用了 Git 部署。
备注
Git 远程的 URL 将显示在
deploymentLocalGitUrl
属性中,其格式为https://<username>@<app-name>.scm.chinacloudsites.cn/<app-name>.git
。 保存此 URL,后续将会用到。浏览到新建的 Web 应用。 将 <app-name> 替换为在上一步中创建的唯一应用名称。
http://<app-name>.chinacloudsites.cn
新 Web 应用应该如下所示:
由于要部署
main
分支,因此需要将应用服务应用的默认部署分支设置为main
(请参阅main
)。 在 Cloud Shell 中,使用az webapp config appsettings set
命令设置DEPLOYMENT_BRANCH
应用设置。az webapp config appsettings set --name <app-name> --resource-group myResourceGroup --settings DEPLOYMENT_BRANCH='main'
回到本地终端窗口,将 Azure 远程功能添加到本地 Git 存储库。 将 deploymentLocalGitUrl-from-create-step> 替换为从>保存的 Git 远程 URL。
git remote add azure <deploymentLocalGitUrl-from-create-step>
使用以下命令推送到 Azure 远程库以部署应用。 当 Git 凭据管理器提示输入凭据时,请确保输入在配置本地 Git 部署中创建的凭据,而不是用于登录到 Azure 门户的凭据。
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 https://<app-name>.scm.chinacloudsites.cn/<app-name>.git cc39b1e..25f1805 main -> main
使用 Web 浏览器浏览到已部署的应用程序。
http://<app-name>.chinacloudsites.cn
PHP 示例代码正在 Azure 应用服务 Web 应用中运行。
恭喜! 现已将第一个 PHP 应用部署到应用服务。
使用本地文本编辑器打开 PHP 应用中的
index.php
文件,并对echo
旁边的字符串中的文本稍微进行更改:echo "Hello Azure!";
在本地终端窗口中,提交在 Git 中所做的更改,然后将代码更改推送到 Azure。
git commit -am "updated output" git push azure main
完成部署后,返回到“浏览到应用”步骤期间打开的浏览器窗口,然后刷新页面。
转到 Azure 门户管理创建的 Web 应用。 搜索并选择“应用服务”。
选择 Azure 应用名称。
此时会显示 Web 应用的“概览”页。 可在此处执行基本的管理任务,例如浏览、停止、重启和删除。
Web 应用菜单提供用于配置应用的不同选项。
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果认为将来不需要这些资源,请在本地 Azure CLI 中运行以下命令删除资源组:
az group delete --name myResourceGroup
此命令可能需要花费一点时间运行。
Azure 应用服务提供高度可缩放、自修复的 Web 托管服务。 本快速入门演示如何将 PHP 应用部署到 Linux 上的 Azure 应用服务。
可以在 Mac、Windows 或 Linux 计算机上执行此处的步骤。 安装先决条件后,大约需要五分钟完成这些步骤。
若要完成本快速入门,你需要:
在浏览器中,导航到包含示例代码的存储库。
选择右上角的“分支”。
在“创建新分支”屏幕上,确认“所有者”和“存储库名称”字段。 选择“创建分支”。
备注
这应使你转到新的分支。 分支 URL 将如下所示:https://github.com/YOUR_GITHUB_ACCOUNT_NAME/php-docs-hello-world
登录到 Azure 门户。
在门户顶部,在搜索框中键入“应用服务”。 在“服务”下选择“应用程序服务” 。
在“应用服务”页面中,请选择“+ 创建”。
在“基本信息”选项卡中:
- 在“资源组”下,选择“新建”。 对于名称,请键入 myResourceGroup。
- 在“名称”下,为 Web 应用键入全局唯一名称。
- 在“发布”下,选择“代码”。
- 在“运行时堆栈”下,选择“PHP 8.2”。
- 在“操作系统”下,选择“Linux”。
- 在“区域”下,选择你附近的 Azure 区域。
- 在“应用服务计划”下,创建名为 myAppServicePlan 的应用服务计划。
- 在“定价计划”下,选择“免费 F1”。
选择页面顶部的“部署”选项卡。
在“GitHub Actions 设置”下,将“持续部署”设置为“启用”。
在“GitHub Actions 详细信息”下,使用 GitHub 帐户进行身份验证,然后选择以下选项:
- 对于“组织”,选择在其中创建了演示项目分支的组织。
- 对于“存储库”,选择 php-docs-hello-world 项目。
- 对于“分支”,请选择 master。
备注
默认情况下,创建向导会禁用基本身份验证,并使用用户分配的标识创建 GitHub Actions 部署。 如果在创建资源期间出现权限错误,则表示你的 Azure 帐户可能没有足够的权限。 可以使用 Azure 管理员为你生成的标识稍后配置 GitHub Actions 部署,也可以改为启用基本身份验证。
选择页面底部的“查看 + 创建”按钮。
运行验证之后,请选择页面底部的“创建”按钮。
部署完成后,请选择“转到资源”。
在 Web 浏览器中使用以下 URL 浏览到已部署的应用程序:
http://<app-name>.chinacloudsites.cn
。
PHP 示例代码在 Azure 应用服务中运行。
祝贺你! 你已使用 Azure 门户将第一个 PHP 应用部署到应用服务。
浏览到 php-docs-hello-world 的 GitHub 分支。
在存储库页面上,按
.
在浏览器中启动 Visual Studio Code。备注
URL 将从 GitHub.com 更改为 GitHub.dev。 此功能仅适用于具有文件的存储库。 它不适用于空存储库。
编辑 index.php,使其显示“Hello Azure!”而不是“Hello World!”
<?php echo "Hello Azure!"; ?>
从“源代码管理”菜单中,选择“暂存更改”按钮以暂存更改。
输入提交消息,如
Hello Azure
。 然后选择“提交和推送”。完成部署后,返回到“浏览到应用”步骤期间打开的浏览器窗口,然后刷新页面。
转到 Azure 门户管理创建的 Web 应用。 搜索并选择“应用服务”。
选择 Azure 应用名称。
此时应会显示 Web 应用的“概览”页。 可在此处执行基本的管理任务,例如浏览、停止、重启和删除。
Web 应用菜单提供用于配置应用的不同选项。
在使用完该示例应用后,可从 Azure 中删除该应用的所有资源。 它有助于避免产生额外费用,并使 Azure 订阅保持整洁。 删除资源组还会删除资源组中的所有资源,这也是为应用删除所有 Azure 资源的最快方法。