在 App Engine 彈性環境中建立 PHP 應用程式
區域 ID
REGION_ID
是 Google 根據您在建立應用程式時選取的地區所指派的縮寫代碼。此代碼不對應至國家/地區或省份,即使部分區域 ID 可能與常用的國家/地區和省份代碼相似。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r
。如果是這段時間前建立的現有應用程式,網址可選擇是否包含地區 ID。
進一步瞭解區域 ID。
本快速入門導覽課程說明如何建立及部署可顯示簡短訊息的應用程式。如要在任何支援的 PHP 版本中使用本快速入門導覽課程中的範例應用程式,請在 app.yaml
檔案中指定執行階段版本和作業系統。
事前準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
-
Install the Google Cloud CLI.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
-
Install the Google Cloud CLI.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
gcloud init
- 由於新專案中 Cloud Build 使用服務帳戶的預設行為有所變更,以及預設安全機構政策異動,您可能需要將額外角色授予部署服務帳戶。如要進一步瞭解如何授予特定角色,請參閱疑難排解指南。
使用您的專案將 App Engine 應用程式初始化,然後選擇地區:
gcloud app create --project=[YOUR_PROJECT_ID]
收到系統提示時,選取 App Engine 應用程式的存放地區。
在本機電腦上安裝下列項目:
- 下載並安裝 Git。
- 安裝 PHP
如要管理依附元件,請下載 Composer 並確保已在全域中安裝 Composer 執行檔。
請執行
gcloud app describe
指令。在 Google Cloud 控制台中開啟 App Engine 資訊主頁。區域會顯示在頁面頂端附近。
將 Hello World 範例應用程式存放區複製到本機電腦。
git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
您也可以下載 zip 格式的範例,然後解壓縮該檔案。
變更為包含範例程式碼的目錄。
cd php-docs-samples/appengine/flexible/helloworld
安裝依附元件。
composer install
啟動本機網路伺服器。
php -S localhost:8080 -t web/
在網路瀏覽器中,輸入下列網址:
-
在
appengine/flexible/helloworld
目錄執行下列指令,以部署 Hello World 應用程式:gcloud app deploy
瞭解選用標記。
常見的
gcloud
指令標記- 加上
--version
標記以指定專門用來辨識您應用程式版本的 ID。如未指定,將由系統自動產生,例如:--version [YOUR_VERSION_ID]
-
加上
--project
標記以指定替代 Google Cloud 專案 ID,而不使用您在gcloud
工具中初始化為預設值的 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
是您的專案 ID。 Google Cloud - In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
- 設定
env: flex
,指出應用程式使用 App Engine 彈性環境。 指定應用程式使用的執行階段。 <
如要進一步瞭解 PHP 執行階段的運作方式,請參閱 PHP 執行階段。
如要進一步瞭解如何設計應用程式來利用各種版本和服務,請參閱 App Engine 總覽。
如需瞭解 App Engine 設定的詳情,請參閱使用 app.yaml 設定應用程式一文。
composer.json
composer.json
用於宣告、安裝及更新應用程式依附元件:
其他必要條件
App Engine 位置
App Engine 具有「地區性」,這表示執行應用程式的基礎架構位於特定地區,且由 Google 代管,可為該地區內的所有區域提供備援功能。
選擇應用程式的執行地區時,請將您在延遲時間、可用性和耐用性方面的要求,做為主要考量。一般來說,您可以選擇距離您應用程式使用者最近的地區,但您也應該考量 App Engine 的適用地區,以及應用程式使用的其他Google Cloud 產品和服務的位置。如果跨多個位置使用服務,可能會影響應用程式的延遲時間和定價。
應用程式的地區設定完成後即無法更改。
如果您已建立 App Engine 應用程式,可以透過下列方式查看其區域:
下載 Hello World 應用程式
我們建立了 App Engine 適用的 Hello World 應用程式,方便您快速瞭解如何在 Google Cloud中部署應用程式。
在本機電腦上執行 Hello World
如何在本機電腦上執行 Hello World 應用程式:
此時頁面會顯示來自範例應用程式的「Hello World」訊息。請在終端機視窗中,按下 Ctrl+C 鍵來關閉網路伺服器。
在 App Engine 上部署並執行 Hello World
如要將您的應用程式部署到 App Engine 彈性環境:
此時,顯示 Hello World 訊息的頁面是由在 App Engine 執行個體上運作的網路伺服器提供。
恭喜!您已成功將第一個 App Engine 應用程式部署至 App Engine 彈性環境!
如果部署應用程式時發生錯誤,請參閱疑難排解提示。請參閱下列各節,瞭解清除所用資源的資訊,並取得相關後續步驟的連結。
清除所用資源
如要避免支付費用,您可以刪除 Google Cloud 專案,這樣系統就會停止對該專案使用的所有資源計費。
後續步驟
瞭解整個平台
現在您已瞭解如何開發及部署 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 網路架構。
這個程式碼會建立新的 Slim Application
物件,然後定義兩個不同的 GET
路徑:
app.yaml
app.yaml
檔案說明應用程式的下列設定: