適用於: ✔️ 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 資源的邏輯容器。
下列範例會使用環境變數建立資源群組,並附加隨機後綴以確保唯一性。
export REGION="eastus2"
export RANDOM_SUFFIX="$(openssl rand -hex 3)"
export MY_RESOURCE_GROUP_NAME="myResourceGroup${RANDOM_SUFFIX}"
az group create --name "${MY_RESOURCE_GROUP_NAME}" --location $REGION
結果:
{
"id": "/subscriptions/xxxxx-xxxxx-xxxxx-xxxxx/resourceGroups/myResourceGroupxxxxx",
"location": "eastus",
"name": "myResourceGroupxxxxx",
"properties": {
"provisioningState": "Succeeded"
}
}
建立虛擬機器
使用 az vm create 命令來建立 VM。
下列範例會使用環境變數建立 VM。 它會建立名為 myVM 的 VM,並在預設金鑰位置中不存在時建立 SSH 金鑰。 若要使用一組特定金鑰,請使用 --ssh-key-value 選項。 此命令也會將 azureuser 設定為管理員使用者名稱。 稍後您會使用此名稱來連線到 VM。
export MY_VM_NAME="myVM${RANDOM_SUFFIX}"
export IMAGE="Ubuntu2204"
export ADMIN_USERNAME="azureuser"
az vm create \
--resource-group "${MY_RESOURCE_GROUP_NAME}" \
--name $MY_VM_NAME \
--image $IMAGE \
--admin-username $ADMIN_USERNAME \
--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 "${MY_RESOURCE_GROUP_NAME}" --name $MY_VM_NAME
如需開啟連接埠以連接 VM 的詳細資訊,請參閱開啟連接埠。
透過 SSH 連線到您的 VM
如果您還不知道您 VM 的公用 IP 位址,請執行 az network public-ip list 命令。 後面有幾個步驟需要此 IP 位址。
export PUBLIC_IP=$(az network public-ip list --resource-group "${MY_RESOURCE_GROUP_NAME}" --query [].ipAddress -o tsv)
使用 ssh命令來建立與虛擬機器的 SSH 連線工作階段。 替換為您虛擬機器的正確公用 IP 位址。
安裝 Apache、MySQL 和 PHP
執行下列命令以更新 Ubuntu 套件來源,並安裝 Apache、MySQL 和 PHP。 請注意命令結尾的插入號 (^),其為 lamp-server^ 套件名稱的一部分。
ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install lamp-server^"
系統會提示您安裝套件和其他相依性。 此程序會安裝使用 PHP 搭配 MySQL 時所需的基本必要 PHP 擴充功能。
驗證 Apache
使用下列命令檢查 Apache 的版本:
ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "apache2 -v"
安裝 Apache 後,且連接埠 80 對您的 VM 狀態為開啟,即可立即從網際網路存取網頁伺服器。 若要檢視 Apache2 Ubuntu 預設網頁,請開啟網頁瀏覽器,並輸入 VM 的公用 IP 位址。 使用您在透過 SSH 連線到 VM 時所使用的公用 IP 位址:
驗證並保護 MySQL
使用下列命令檢查 MySQL 的版本 (請注意 V 參數是大寫):
ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "mysql -V"
若要協助保護 MySQL 的安裝,包括設定根密碼,您可以執行 sudo mysql_secure_installation 命令。 此命令會提示您回答數個問題,以協助保護您的 MySQL 安裝。
您可以選擇性地設定驗證密碼外掛程式 (建議選項)。 然後,設定 MySQL 根使用者的密碼,並針對您的環境設定其餘安全性設定。 我們建議您對所有問題回答 "Y" (是)。
如果您想要試用 MySQL 功能 (建立 MySQL 資料庫、新增使用者或變更組態設定),請登入 MySQL。 您不需要進行這個步驟也能完成本教學課程。 若要這樣做,您可以在 VM 中使用 sudo mysql -u root -p 命令,然後在出現提示時輸入您的根密碼。 此命令會透過 SSH 連線到您的 VM,並以根使用者身分啟動 MySQL 命令行用戶端。
完成後,輸入 \q 以結束 mysql 提示字元。
驗證 PHP
使用下列命令檢查 PHP 的版本:
ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "php -v"
如果您想要進一步測試,您可以建立快速 PHP 資訊頁面,以在瀏覽器中檢視。 下列命令會建立 PHP 資訊頁面 sudo sh -c 'echo \"<?php phpinfo\(\)\; ?>\" > /var/www/html/info.php
現在您可以檢查您所建立的 PHP 資訊網頁。 開啟瀏覽器並移至至 http://yourPublicIPAddress/info.php。 替換為您 VM 的公用 IP 位址。 該頁面看起來應該類似下圖。
安裝 WordPress
如果您想要嘗試您的堆疊,請安裝範例應用程式。 例如,下列步驟可安裝開放原始碼 WordPress 平台以建立網站和部落格。 其他可嘗試的工作負載包括 Drupal 和 Moodle。
此 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 位址。 該頁面看起來應該類似下圖。
下一步
在本教學課程中,您已在 Azure 中部署 LAMP 伺服器。 您已了解如何︰
- 建立 Ubuntu VM
- 針對 Web 流量開啟連接埠 80
- 安裝 Apache、MySQL 和 PHP
- 驗證安裝和設定
- 在 LAMP 伺服器上安裝 WordPress
前進到下一個教學課程,以了解如何使用 TLS/SSL 憑證保護 Web 伺服器。