Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ виртуальные машины Linux
Эта статья содержит указания по развертыванию веб-сервера Apache, MySQL и PHP (стека LAMP) на виртуальной машине Ubuntu в Azure. Если необходимо оценить работу сервера LAMP в действии, вы можете установить и настроить сайт WordPress. Из этого руководства вы узнаете, как выполнить следующие задачи:
- Создание виртуальной машины Ubuntu.
- Открытие порта 80 для веб-трафика
- Установка Apache, PHP и MySQL
- Проверка установки и настройки
- Установка WordPress
Эта настройка выполняется для быстрых тестов или подтверждения концепции. Дополнительные сведения о стеке LAMP, включая рекомендации для рабочей среды, см. в документации Ubuntu.
При работе с этим руководством используется интерфейс командной строки (CLI) в Azure Cloud Shell, который всегда обновлен до последней версии. Чтобы открыть Cloud Shell, выберите Попробовать в верхнем углу любого блока кода.
Если вы решили установить и использовать интерфейс командной строки локально, в этом руководстве требуется, чтобы вы работали с Azure CLI версии 2.0.30 или более поздней. Чтобы узнать версию, выполните команду az --version
. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.
Создание или изменение группы ресурсов
Создайте группу ресурсов с помощью команды 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.
В следующем примере создается виртуальная машина с помощью переменных среды. Он создает виртуальную машину с именем myVM и создает ключи SSH, если они еще не существуют в расположении ключа по умолчанию. Чтобы использовать определенный набор ключей, используйте параметр --ssh-key-value
. Эта команда также задает azureuser в качестве имени пользователя администратора. Это имя будет использоваться для подключения к виртуальной машине.
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
После создания виртуальной машины в Azure CLI отображается информация следующего вида. Запишите значение publicIpAddress
. Этот адрес будет использоваться для доступа к виртуальной машине на следующих шагах.
{
"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"
}
Открытие порта 80 для веб-трафика
По умолчанию виртуальные машины Linux, развернутые в Azure, поддерживают только SSH-подключения. Так как эта виртуальная машина будет использоваться в качестве веб-сервера, необходимо открыть порт 80 через Интернет. Выполните команду az vm open-port, чтобы открыть нужный порт.
az vm open-port --port 80 --resource-group "${MY_RESOURCE_GROUP_NAME}" --name $MY_VM_NAME
Дополнительные сведения об открытии портов для виртуальной машины см. в этой статье.
SSH-подключение к виртуальной машине
Если вам не известен общедоступный 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, PHP и MySQL
Чтобы обновить источники пакетов Ubuntu и установить Apache, PHP и MySQL, выполните указанную ниже команду. Обратите внимание на знак курсора (^) в конце команды, который является частью имени пакета lamp-server^
.
ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "sudo apt-get update && sudo DEBIAN_FRONTEND=noninteractive apt-get -y install lamp-server^"
Вам будет предложено установить пакеты и другие зависимости. Это позволит установить минимальный набор расширений PHP, необходимый для использования PHP с MySQL.
Проверка Apache
Проверьте версию Apache, выполнив следующую команду:
ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "apache2 -v"
Установив Apache и открыв порт 80 для виртуальной машины, вы можете получить доступ к веб-серверу через Интернет. Чтобы просмотреть страницу по умолчанию Apache2 Ubuntu, откройте веб-браузер и введите общедоступный IP-адрес виртуальной машины. Укажите общедоступный IP-адрес, используемый для подключения по протоколу SSH к виртуальной машине.
Проверка и обеспечение защиты MySQL
Узнайте версию MySQL, выполнив указанную ниже команду. Обратите внимание, что параметр V
указан с заглавной буквы.
ssh -o StrictHostKeyChecking=no azureuser@$PUBLIC_IP "mysql -V"
Чтобы защитить установку MySQL, включая задание корневого пароля, можно выполнить sudo mysql_secure_installation
команду. В этой командной строке вы можете ответить на несколько вопросов, чтобы защитить установку MySQL.
При необходимости можно настроить подключаемый модуль проверки пароля (рекомендуется). Затем укажите пароль привилегированного пользователя MySQL и настройте остальные параметры безопасности для вашей среды. Мы рекомендуем ответить "Да" на все вопросы.
Чтобы опробовать функции MySQL (создать базу данных MySQL, добавить пользователей или изменить параметры конфигурации), войдите в MySQL. Этот шаг не требуется для выполнения этого руководства. Для этого можно использовать команду на виртуальной sudo mysql -u root -p
машине, а затем ввести корневой пароль при появлении запроса. Эта команда подключается к виртуальной машине через SSH и запускает клиент командной строки MySQL в качестве корневого пользователя.
По окончании выйдите из командной строки MySQL, введя \q
.
Проверка 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
. Замените общедоступный IP-адрес своей виртуальной машины. Она должна выглядеть, как показано ниже.
Установка WordPress
Чтобы проверить работу стека, установите пример приложения. Например, выполните приведенные ниже шаги, чтобы установить платформу WordPress с открытым кодом для создания веб-сайтов и блогов. Для других рабочих нагрузок потребуется установка платформ Drupal и Moodle.
Эта конфигурация WordPress предназначена только для подтверждения концепции. Чтобы установить последнюю версию WordPress в рабочей среде с рекомендуемыми параметрами безопасности, ознакомьтесь с документацией по WordPress.
Установка пакета WordPress
Выполните следующую команду:
sudo apt install wordpress
Настройка WordPress
Настройте WordPress, чтобы использовать MySQL и PHP.
В рабочей папке создайте текстовый файл wordpress.sql
, чтобы настроить базу данных MySQL для WordPress.
sudo sensible-editor wordpress.sql
Добавьте следующие команды, заменив пароль базы данных на свой_пароль. Другие значения оставьте без изменений. Если вы ранее настроили политику безопасности 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 на свой_пароль. Другие значения оставьте без изменений. Затем сохраните файл.
<?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 в корневой каталог документов на веб-сервере.
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
. Замените общедоступный IP-адрес своей виртуальной машины. Она должна выглядеть, как показано ниже.
Следующие шаги
Из этого руководства вы узнали, как развернуть сервер LAMP в Azure. Вы научились выполнять следующие задачи:
- Создание виртуальной машины Ubuntu.
- Открытие порта 80 для веб-трафика
- Установка Apache, PHP и MySQL
- Проверка установки и настройки
- установка WordPress на сервере LAMP.
Перейдите к следующему руководству, чтобы узнать, как защитить веб-серверы с помощью TLS/SSL-сертификатов.