教學課程:在 Azure Linux VM 上安裝 LAMP 堆疊

適用於: ✔️ Linux VM

本文會逐步引導您在 Azure 中的 Ubuntu VM 上部署 Apache 網頁伺服器、MySQL 和 PHP (LAMP 堆疊)。 若要查看作用中的 LAMP 伺服器,您可以選擇安裝及設定 WordPress 網站。 在本教學課程中,您將了解如何:

  • 建立 Ubuntu VM
  • 針對 Web 流量開啟連接埠 80
  • 安裝 Apache、MySQL 和 PHP
  • 驗證安裝和設定
  • 安裝 WordPress

此安裝程式適用於快速測試或概念證明。 如需 LAMP 堆疊的詳細資訊 (包括適用於生產環境的建議),請參閱 Ubuntu 文件

本教學課程會使用 Azure Cloud Shell 內的 CLI,這會不斷更新至最新版本。 若要開啟 Cloud Shell,請選取任何程式碼區塊頂端的 [試試看]

如果您選擇在本機安裝和使用 CLI,本教學課程會要求您執行 Azure CLI 2.0.30 版或更新版本。 執行 az --version 以尋找版本。 如果您需要安裝或升級,請參閱安裝 Azure CLI

建立資源群組

使用 az group create 命令來建立資源群組。 Azure 資源群組是在其中部署與管理 Azure 資源的邏輯容器。

下列範例會在 eastus 位置建立名為 myResourceGroup 的資源群組。

az group create --name myResourceGroup --location eastus

建立虛擬機器

使用 az vm create 命令來建立 VM。

下列範例會建立名為 myVM 的 VM,並建立 SSH 金鑰 (如果它們不存在於預設金鑰位置)。 若要使用一組特定金鑰,請使用 --ssh-key-value 選項。 此命令也會將 azureuser 設定為管理員使用者名稱。 稍後您會使用此名稱來連線到 VM。

az vm create \
    --resource-group myResourceGroup \
    --name myVM \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

建立 VM 後,Azure CLI 會顯示類似下列範例的資訊。 記下 publicIpAddress。 後面的步驟會使用此位址來存取 VM。

{
  "fqdns": "",
  "id": "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "eastus",
  "macAddress": "00-0D-3A-23-9A-49",
  "powerState": "VM running",
  "privateIpAddress": "10.0.0.4",
  "publicIpAddress": "40.68.254.142",
  "resourceGroup": "myResourceGroup"
}

針對 Web 流量開啟連接埠 80

依預設只能透過 SSH 連線至 Azure 中部署的 Linux VM。 因為此 VM 即將成為 Web 伺服器,所以您需要從網際網路開啟連接埠 80。 使用 az vm open-port 命令來開啟所需的連接埠。

az vm open-port --port 80 --resource-group myResourceGroup --name myVM

如需開啟連接埠以連接 VM 的詳細資訊,請參閱開啟連接埠

透過 SSH 連線到您的 VM

如果您還不知道您 VM 的公用 IP 位址,請執行 az network public-ip list 命令。 後面有幾個步驟需要此 IP 位址。

az network public-ip list --resource-group myResourceGroup --query [].ipAddress

使用下列命令,建立與虛擬機器的 SSH 工作階段。 替換為您虛擬機器的正確公用 IP 位址。 在此範例中,IP 位址是 40.68.254.142。 azureuser 是您在建立 VM 時所設定的管理員使用者名稱。

ssh azureuser@40.68.254.142

安裝 Apache、MySQL 和 PHP

執行下列命令以更新 Ubuntu 套件來源,並安裝 Apache、MySQL 和 PHP。 請注意命令結尾的插入號 (^),其為 lamp-server^ 套件名稱的一部分。

sudo apt update && sudo apt install lamp-server^

系統會提示您安裝套件和其他相依性。 此程序會安裝使用 PHP 搭配 MySQL 時所需的基本必要 PHP 擴充功能。

驗證 Apache

使用下列命令檢查 Apache 的版本:

apache2 -v

安裝 Apache 後,且連接埠 80 對您的 VM 狀態為開啟,即可立即從網際網路存取網頁伺服器。 若要檢視 Apache2 Ubuntu 預設網頁,請開啟網頁瀏覽器,並輸入 VM 的公用 IP 位址。 使用您在透過 SSH 連線到 VM 時所使用的公用 IP 位址:

Apache default page

驗證並保護 MySQL

使用下列命令檢查 MySQL 的版本 (請注意 V 參數是大寫):

mysql -V

若要協助保護 MySQL 的安裝 (包括設定根密碼),請執行 mysql_secure_installation 指令碼。

sudo mysql_secure_installation

您可以選擇性地設定驗證密碼外掛程式 (建議選項)。 然後,設定 MySQL 根使用者的密碼,並針對您的環境設定其餘安全性設定。 我們建議您對所有問題回答 "Y" (是)。

如果您想要試用 MySQL 功能 (建立 MySQL 資料庫、新增使用者或變更組態設定),請登入 MySQL。 您不需要進行這個步驟也能完成本教學課程。

sudo mysql -u root -p

完成後,輸入 \q 以結束 mysql 提示字元。

驗證 PHP

使用下列命令檢查 PHP 的版本:

php -v

如果您想要進一步測試,請建立要在瀏覽器中檢視的快速 PHP 資訊網頁。 下列命令會建立 PHP 資訊網頁:

sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'

現在您可以檢查您所建立的 PHP 資訊網頁。 開啟瀏覽器並移至至 http://yourPublicIPAddress/info.php。 替換為您 VM 的公用 IP 位址。 該頁面看起來應該類似下圖。

PHP info page

安裝 WordPress

如果您想要嘗試您的堆疊,請安裝範例應用程式。 例如,下列步驟可安裝開放原始碼 WordPress 平台以建立網站和部落格。 其他可嘗試的工作負載包括 DrupalMoodle

此 WordPress 設定只適用於概念證明。 若要在生產環境中使用建議的安全性設定安裝最新的 WordPress,請參閱 WordPress 文件

安裝 WordPress 套件

執行以下命令:

sudo apt install wordpress

設定 WordPress

將 WordPress 設定為使用 MySQL 和 PHP。

在工作目錄中,建立文字檔 wordpress.sql 以設定 WordPress 的 MySQL 資料庫:

sudo sensible-editor wordpress.sql

新增下列命令,以您選擇的資料庫密碼替代 yourPassword (其他值維持不變)。 如果您先前已設定 MySQL 安全性原則來驗證密碼強度,請確定此密碼符合強度需求。 儲存檔案。

CREATE DATABASE wordpress;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER
ON wordpress.*
TO wordpress@localhost
IDENTIFIED BY 'yourPassword';

執行下列命令來建立資料庫:

cat wordpress.sql | sudo mysql --defaults-extra-file=/etc/mysql/debian.cnf

wordpress.sql 檔案中包含資料庫認證,因此請在使用下列命令後將其刪除:

sudo rm wordpress.sql

若要設定 PHP,請執行下列命令來開啟您選擇的文字編輯器,並建立 /etc/wordpress/config-localhost.php 檔案:

sudo sensible-editor /etc/wordpress/config-localhost.php

將下列幾行複製到檔案,以您的 WordPress 資料庫密碼替代 yourPassword (其他值維持不變)。 然後儲存檔案。

<?php
define('DB_NAME', 'wordpress');
define('DB_USER', 'wordpress');
define('DB_PASSWORD', 'yourPassword');
define('DB_HOST', 'localhost');
define('WP_CONTENT_DIR', '/usr/share/wordpress/wp-content');
?>

將 WordPress 安裝移至 Web 伺服器文件根目錄:

sudo ln -s /usr/share/wordpress /var/www/html/wordpress

sudo mv /etc/wordpress/config-localhost.php /etc/wordpress/config-default.php

您現在即可完成 WordPress 設定並且在平台上發佈。 開啟瀏覽器並移至至 http://yourPublicIPAddress/wordpress。 替換為您 VM 的公用 IP 位址。 該頁面看起來應該類似下圖。

WordPress installation page

下一步

在本教學課程中,您已在 Azure 中部署 LAMP 伺服器。 您已了解如何︰

  • 建立 Ubuntu VM
  • 針對 Web 流量開啟連接埠 80
  • 安裝 Apache、MySQL 和 PHP
  • 驗證安裝和設定
  • 在 LAMP 伺服器上安裝 WordPress

前進到下一個教學課程,以了解如何使用 TLS/SSL 憑證保護 Web 伺服器。