教程:在 Azure Linux VM 上安装 LAMP 堆栈

适用于:✔️ Linux VM

本文逐步讲解如何在 Azure 中的 Ubuntu VM 上部署 Apache Web 服务器、MySQL 和 PHP(LAMP 堆栈)。 若要了解 LAMP 服务器的运作情况,可以选择性地安装并配置 WordPress 站点。 本教程介绍如何执行下列操作:

  • 创建 Ubuntu VM
  • 为 Web 流量打开端口 80
  • 安装 Apache、MySQL 和 PHP
  • 验证安装和配置
  • 安装 WordPress

此设置用于快速测试或概念证明。 有关 LAMP 堆栈的详细信息,包括针对生产环境的建议,请参阅 Ubuntu 文档

注意

在可以在由世纪互联运营的 Microsoft Azure 中使用 Azure CLI 之前,请先运行 az cloud set -n AzureChinaCloud 来更改云环境。 若要切换回 Azure 公有云,请再次运行 az cloud set -n AzureCloud

如果选择在本地安装并使用 CLI,本教程要求运行 Azure CLI 2.0.30 或更高版本。 运行 az --version 即可查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI

创建资源组

使用“az group create”命令创建资源组。 Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。

以下示例在“chinaeast” 位置创建名为“myResourceGroup” 的资源组。

az group create --name myResourceGroup --location chinaeast

创建虚拟机

使用 az vm create 命令创建 VM。

下面的示例创建一个名为 myVM 的 VM,并且在默认密钥位置中不存在 SSH 密钥时创建这些密钥。 若要使用特定的一组密钥,请使用 --ssh-key-value 选项。 该命令还会将 azureuser 设置为管理员用户名。 稍后要使用此名称连接到 VM。

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

创建 VM 后,Azure CLI 会显示类似于以下示例的信息。 记下 publicIpAddress。 在后续步骤中,将使用此地址访问 VM。

{
  "fqdns": "",
  "id": "/subscriptions/<subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachines/myVM",
  "location": "chinaeast",
  "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 服务器,因此需要从 Internet 打开端口 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.142azureuser 是创建 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 并向 VM 打开端口 80 之后,即可通过 Internet 访问 Web 服务器。 若要查看 Apache2 Ubuntu 默认页,请打开 Web 浏览器并输入 VM 的公共 IP 地址。 使用通过 SSH 连接到 VM 时所用的公共 IP 地址:

Apache default page

验证并保护 MySQL

使用以下命令检查 MySQL 版本(请注意大写的 V 参数):

mysql -V

若要帮助保护 MySQL 安装,包括设置 root 密码,请运行 mysql_secure_installation 脚本。

sudo mysql_secure_installation

还可以选择设置“验证密码”插件(推荐)。 然后,为 MySQL root 用户设置一个密码,并为您的环境配置剩余的安全设置。 建议对所有问题都回答“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

将以下行复制到文件中,并将 yourPassword 替换为 WordPress 数据库密码(其他值不变)。 然后保存文件。

<?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 服务器。