練習 - 在 Azure App Service 上部署 PHP 和 MySQL - 彈性伺服器應用程式
在此單元中,您會建置樣本 PHP 應用程式並將其部署至 Azure App Service,並將其與後端上「適用於 MySQL 的 Azure 資料庫 - 彈性伺服器」整合。
步驟 1 - 建立適用於 MySQL 的 Azure 資料庫彈性伺服器
首先,您會佈建具有公用存取連線能力的 MySQL 彈性伺服器,再將防火牆規則設定為允許應用程式存取伺服器,並建立生產資料庫。
您會使用 Azure 入口網站來逐步解說 MySQL 彈性伺服器建立體驗。
使用啟用沙箱時所用的相同帳戶來登入 Azure 入口網站。
在頁面頂端的搜尋方塊中,輸入 [MySQL],然後選取 [適用於 MySQL 的 Azure 資料庫彈性伺服器]。
在 [適用於 MySQL 的 Azure 資料庫彈性伺服器] 頁面上,選取 [+ 建立],然後選取 [彈性伺服器]。
在 [彈性伺服器] 頁面的 [基本] 索引標籤上,輸入下表中的資訊。
設定 建議的值 訂用帳戶 指引訂用帳戶 資源群組 從下拉式清單中,選取開頭為 learn- 的資源群組 伺服器名稱 輸入可識別彈性伺服器的全域唯一名稱。 MySQL 版本 8.0 工作負載類型 選取 [用於開發或興趣專案] 管理員使用者名稱 輸入 mysqladmin。 請勿使用 azure_superuser、admin、administrator、root、guest 或 public。 密碼 輸入 Passw0rd123。 密碼必須包含介於 8 到 128 個字元之間,且包含來自三個類別的字元:英文大寫字母、英文小寫字母、數字 (0 到 9) 和非英數字元 (例如 !、$、#、%)。 對於所有其他設定,請保持預設值。
在 [基本] 索引標籤上的 [計算 + 儲存體] 底下,選取 [設定伺服器]。
在 [計算 + 儲存體] 頁面上,設定下列設定:
- 計算
- 選取 [可高載] 計算層。
- 從 [計算大小] 下拉式清單中,選取 [Standard_B1s (1 個 V 核心、1 GiB 記憶體、400 個最大 iops)]。
- Storage
- 確認 [儲存體大小 (以 GB 為單位)] 設定為 20。
- 選取 [預先佈建的 IOPS] 並讓值設為 360。
- 確認已選取 [儲存體自動成長] 核取方塊。
- 高可用性
- 確認未選取 [啟用高可用性] 核取方塊。
- 備份
- 確認 [備份保留期間 (天)] 設為 7。
- 確認未選取 [從區域中斷或災害復原] 核取方塊。
- 計算
選取 [儲存],然後瀏覽至 [網路] 索引標籤。
在 [網路] 索引標籤中,選取 [公用存取 (允許的 IP 位址)] 連線方法、核取 [允許使用公用 IP 位址透過網際網路公用存取此資源],並核取 [允許來自 Azure 內的任何 Azure 服務可公用存取此伺服器],如下列螢幕擷取畫面所示。
選取 [檢閱 + 建立],以檢閱 MySQL 彈性伺服器設定。
選取 [建立] 以佈建伺服器。 佈建最多可能需要 10 分鐘。
部署完成後,選取 [移至資源],以檢視適用於 MySQL 的 Azure 資料庫彈性伺服器的 [概觀] 頁面。
在本練習的其餘部分中,您會使用顯示在此視窗右側的 Azure Cloud Shell 來執行命令。
若要建立新的 MySQL 生產資料庫 sampledb 以搭配 PHP 應用程式使用,請執行下列命令:
az mysql flexible-server db create \
--resource-group <rgn>[Sandbox resource group name]</rgn> \
--server-name <your-mysql-server-name> \
--database-name sampledb
步驟 2 - 複製您的應用程式
您會在本練習使用顯示和管理產品目錄的範例 PHP 應用程式。 該應用程式提供基本功能,例如檢視目錄中的產品、新增產品、更新現有項目價格,以及移除產品。
我們會直接複製編碼的應用程式,並了解如何在 Azure App Service 上部署該應用程式。
注意
若要深入了解應用程式程序代碼,請繼續在 GitHub 存放庫中探索該應用程式!
若要複製範例應用程式存放庫,並變更至儲存機制根路徑,請執行下列命令:
git clone https://github.com/Azure-Samples/php-mysql-app-service.git cd php-mysql-app-service
執行下列命令以確保預設分支為
main
。git branch -m main
步驟 3 - 建立和設定 Azure App Service Web 應用程式
在 Azure App Service (Web Apps、API Apps 或 Mobile Apps) 中,應用程式一律會在 App Service 方案中執行。 App Service 方案會定義一組計算資源,供要執行的 Web 應用程式使用。 我們會在此步驟建立 Azure App Service 方案和其中的 App Service Web 應用程式,以裝載應用程式範例。
若要使用免費定價層來建立 App Service 方案,請執行下列命令:
az appservice plan create --name plan-learn \ --resource-group <rgn>[Sandbox resource group name]</rgn> \ --location centralus \ --sku FREE --is-linux
如果您想要使用 FTP 或本機 Git 等部署方法,將應用程式部署至 Azure Web 應用程式,您必須利用使用者名稱和密碼認證來設定部署使用者。 設定部署使用者之後,即可對所有 Azure App Service 部署使用該設定。
az webapp deployment user set \ --user-name <your-deployment-username> \ --password <your-deployment-password>
若要使用 PHP 8.0 執行階段建立 App Service Web 應用程式,並設定本地 Git 部署選項,以從本機電腦上的 Git 存放庫部署您的應用程式,請執行下列命令。
注意:使用全域唯一的應用程式名稱 (有效字元為 a-z、0-9 和 -) 取代
<your-app-name>
。az webapp create \ --resource-group <rgn>[Sandbox resource group name]</rgn> \ --plan plan-learn \ --name <your-app-name> \ --runtime "PHP|8.0" \ --deployment-local-git
重要
在 Azure CLI 輸出中,Git 遠端的 URL 會顯示在
deploymentLocalGitUrl
屬性中,格式為https://<username>@<app-name>.scm.azurewebsites.net/<app-name>.git
。 儲存此 URL,稍後您將會用到此資訊。範例 PHP 應用程式中的
config.php
檔案會使用getenv()
函數,從環境變數擷取資料庫連線資訊 (伺服器名稱、資料庫名稱、伺服器使用者名稱和密碼)。 在 App Service 中,若要將環境變數設為應用程式設定 (appsettings),請執行下列命令:az webapp config appsettings set \ --name <your-app-name> \ --resource-group <rgn>[Sandbox resource group name]</rgn> \ --settings DB_HOST="<your-server-name>.mysql.database.azure.com" \ DB_DATABASE="sampledb" \ DB_USERNAME="<your-mysql-admin-username>" \ DB_PASSWORD="<your-mysql-admin-password>" \ MYSQL_SSL="true"
上面的命令會在 Web 應用程式中設定 MySQL 彈性伺服器資料庫連結設定。
步驟 4 - 使用本機 Git 部署您的應用程式
現在,您可以使用 [本機 Git 部署] 選項,將範例 PHP 應用程式部署至 Azure App Service。
由於您要部署主分支,因此您必須將 App Service 應用程式的預設部署分支設定為主要。 若要在應用程式設定下設定 DEPLOYMENT_BRANCH,請執行下列命令:
az webapp config appsettings set \ --name <your-app-name> \ --resource-group <rgn>[Sandbox resource group name]</rgn> \ --settings DEPLOYMENT_BRANCH='main'
確認您位於應用程式存放庫的根目錄中。
若要將 Azure 遠端新增至本地 Git 存放庫,請執行下列命令。
注意:將您在建立 App Service Web 應用程式步驟中儲存的 Git 遠端 URL 取代
<deploymentLocalGitUrl>
。git remote add azure <deploymentLocalGitUrl>
若要藉由執行
git push
將應用程式部署至 Azure 遠端,請執行下列命令。 當 Git 認證管理員提示您輸入認證時,請輸入您在設定部署使用者步驟中所建立的部署認證。git push azure main
部署可能需要幾分鐘才能完成。
步驟 5 - 測試您的應用程式
最後,透過瀏覽至 https://<app-name>.azurewebsites.net
,然後從產品目錄中新增、檢視、更新或刪除項目來測試應用程式。
恭喜! 您已成功將樣本 PHP 應用程式部署至 Azure App Service,並將其與後端上「適用於 MySQL 的 Azure 資料庫 - 彈性伺服器」整合。