在 App Engine 柔性环境中创建 PHP 应用
地区 ID
REGION_ID
是 Google 根据您在创建应用时选择的区域分配的缩写代码。此代码不对应于国家/地区或省,尽管某些区域 ID 可能类似于常用国家/地区代码和省代码。对于 2020 年 2 月以后创建的应用,REGION_ID.r
包含在 App Engine 网址中。对于在此日期之前创建的现有应用,网址中的区域 ID 是可选的。
详细了解区域 ID。
本快速入门演示了如何创建和部署一个显示简短消息的应用。您可以通过在 app.yaml
文件中指定运行时版本和操作系统,将本快速入门中的示例应用用于任何受支持的 PHP 版本。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
启用 Cloud Build API。
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
启用 Cloud Build API。
- 安装 Google Cloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
其他前提条件
初始化您的项目的 App Engine 应用并选择应用的区域:
gcloud app create --project=[YOUR_PROJECT_ID]
系统提示时,选择您希望自己的 App Engine 应用所在的区域。
安装以下必备组件:
- 下载并安装 Git。
- 安装 PHP
如需管理依赖项,请下载 Composer 并确保对 Composer 可执行文件进行全局安装。
App Engine 位置
App Engine 是区域级的,这意味着运行您的应用的基础架构位于特定区域并由 Google 代管,以使其在该区域内的所有可用区以冗余方式提供。
选择要在哪个区域运行应用时,首先要考虑该区域是否能满足您的延迟时间、可用性或耐用性要求。通常,您可以选择距离应用的用户最近的地区,但也要考虑提供 App Engine 的位置以及应用使用的其他 Google Cloud 产品和服务的位置。跨多个位置使用服务可能会影响应用的延迟时间及其pricing。
应用的区域一经设置,便无法更改。
如果您已创建 App Engine 应用,则可以通过执行以下任一操作来查看其区域:
运行
gcloud app describe
命令。打开 Google Cloud 控制台中的 App Engine 信息中心。该区域会显示在页面顶部附近。
下载 Hello World 应用
我们创建了一个 App Engine 版 Hello World 应用,以便您快速了解如何将应用部署到 Google Cloud。
将 Hello World 示例应用代码库克隆到本地机器。
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
或者,您也可以下载该示例的 zip 文件并将其解压缩。
切换到包含示例代码的目录。
cd php-docs-samples/appengine/flexible/helloworld
在本地机器上运行 Hello World
如需在本地计算机上运行 Hello World 应用,请执行以下操作:
安装依赖项。
composer install
启动本地网络服务器。
php -S localhost:8080 -t web/
在网络浏览器中输入以下地址:
页面中随即显示示例应用发出的 Hello World 消息。在终端窗口中,按 Ctrl+C 退出 Web 服务器。
在 App Engine 上部署并运行 Hello World
要将应用部署到 App Engine 柔性环境,请执行以下操作:-
从
appengine/flexible/helloworld
目录运行以下命令来部署 Hello World 应用:gcloud app deploy
了解可选标志。
常见的
gcloud
命令标志- 添加
--version
标志,可以指定用来唯一标识应用版本的 ID,否则系统会为您生成一个 ID。示例:--version [YOUR_VERSION_ID]
-
添加
--project
标志,可以为您在gcloud
工具中初始化为默认值的 Google Cloud 项目 ID 指定一个备用 Google Cloud 项目 ID。示例:--project [YOUR_PROJECT_ID]
例如:
gcloud app deploy --version pre-prod-5 --project my-sample-app
如需详细了解如何从命令行部署应用,请参阅测试和部署应用。如需查看所有命令标志的列表,请参阅
gcloud app deploy
参考。 - 添加
-
启动浏览器,然后访问
https://PROJECT_ID.REGION_ID.r.appspot.com
以查看此应用gcloud app browse
其中PROJECT_ID
表示您的 Google Cloud 项目 ID。
此时,在 App Engine 实例上运行的 Web 服务器提供显示 Hello World 消息的页面。
恭喜!您已将第一个 App Engine 应用部署到 App Engine 柔性环境!
如果您在部署应用时遇到任何错误,请查看问题排查提示。如需了解有关清理的信息以及可执行的后续步骤的链接,请参阅以下部分。
清理
为避免产生费用,您可以删除 Google Cloud 项目,以停止对该项目中使用的所有资源计费。
- 在 Google Cloud 控制台中,进入管理资源页面。
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在对话框中输入项目 ID,然后点击关闭以删除项目。
后续步骤
了解整个平台
现在,您已了解如何开发和部署 App Engine 应用,接下来您可以探索 Google Cloud 的其余部分。您已经安装了 Google Cloud CLI,它可为您提供与 Cloud SQL、Cloud Storage、Firestore 等产品交互的工具。
了解 App Engine 柔性环境
以下主题有助于您继续了解 App Engine:
Hello World 代码审核
Hello World 是最简单的 App Engine 应用,因为它只包含一项服务,只有一个版本,并且所有代码都位于应用的根目录中。本部分详细介绍各应用文件。
index.php
index.php
文件包含用于启动服务器和响应请求的 PHP 代码。此示例使用的是 Slim,但您可以使用其他 PHP Web 框架。
此代码会创建一个新的 Slim Application
对象,然后定义两个不同的 GET
路由:
app.yaml
app.yaml
文件描述了应用的以下配置:
- 设置
env: flex
,以指示您的应用使用 App Engine 柔性环境。 指定应用使用的运行时。
如需详细了解 PHP 运行时的工作原理,请参阅 PHP 运行时。
如需详细了解如何设计应用以利用多个版本和多项服务,请参阅 App Engine 概览。
如需详细了解 App Engine 的配置设置,请参阅使用 app.yaml 配置应用。
composer.json
composer.json
用于声明、安装和更新应用依赖项: