yandex
Калькулятор ценТарифыАкцииДокументацияО насКарьера в Cloud.ruНовостиЮридические документыКонтактыРешенияРеферальная программаКейсыПартнерство с Cloud.ruБезопасностьEvolutionAdvancedEvolution StackОблако VMwareML SpaceВ чем отличия платформ?БлогОбучение и сертификацияМероприятияИсследования Cloud.ruЛичный кабинетВойтиЗарегистрироватьсяEvolution ComputeEvolution Managed KubernetesEvolution Object StorageEvolution Managed PostgreSQL®Облако для мобильных и веб‑приложенийАналитика данных в облакеEvolution Bare MetalEvolution SSH KeysEvolution ImageСайт в облакеEvolution DNSEvolution VPCEvolution Load BalancerEvolution Magic RouterEvolution DiskХранение данных в облакеEvolution Container AppsEvolution Artifact RegistryEvolution Managed ArenadataDBEvolution Managed TrinoEvolution Managed SparkАналитика данных в облакеEvolution ML InferenceEvolution Distributed TrainEvolution ML FinetuningEvolution NotebooksCurator Anti-DDoSCurator Anti‑DDoS+WAFUserGate: виртуальный NGFWStormWall: Anti-DDoSEvolution TagsEvolution Task HistoryCloud MonitoringCloud LoggingАренда GPUAdvanced Object Storage ServiceAdvanced Elastic Cloud ServerAdvanced Relational Database Service for PostgreSQLРазработка и тестирование в облакеAdvanced Image Management ServiceAdvanced Auto ScalingDirect ConnectCDNCross-platform connectionAdvanced Enterprise RouterAdvanced Cloud Backup and RecoveryAdvanced Data Warehouse ServiceAdvanced Elastic Volume ServiceAdvanced Cloud Container EngineAdvanced FunctionGraphAdvanced Container Guard ServiceAdvanced Software Repository for ContainerAdvanced Document Database Service with MongoDBAdvanced Relational Database Service for MySQLAdvanced Relational Database Service for SQL ServerCloud AdvisorAdvanced Server Migration ServiceAdvanced Data Replication ServiceAdvanced API GatewayAdvanced CodeArtsAdvanced Distributed Message Service for KafkaAdvanced Distributed Message Service for RabbitMQAdvanced DataArts InsightAdvanced CloudTableAdvanced MapReduce ServiceAdvanced Cloud Trace ServiceAdvanced Application Performance ManagementAdvanced Identity and Access ManagementAdvanced Enterprise Project Management ServiceVMware: виртуальный ЦОД с GPUVMware: виртуальный ЦОДУдаленные рабочие столы (VDI)VMware: сервер Bare MetalИнфраструктура для 1С в облакеУдаленные рабочие столыМиграция IT‑инфраструктуры в облако3D-моделирование и рендерингVMware: резервное копирование виртуальных машинVMware: резервный ЦОДVMware: резервное копирование в облакоVMware: миграция виртуальных машин
Поиск
Связаться с нами

Установка LAMP стека на Ubuntu: настройка сервера

LAMP — это стек веб-разработки, который проверен временем и практикой. Он позволяет без лишних сложностей развернуть полноценный веб-сервер, ведь все его компоненты бесплатны и поддерживаются активным сообществом. Рассказываем, как установить LAMP и создать устойчивую основу для работы сайтов и веб-приложений.

Инструкции
Иллюстрация для статьи на тему «Установка LAMP стека на Ubuntu: настройка сервера»
Продукты из этой статьи:
Иконка-Evolution Compute
Evolution Compute

Что такое LAMP

LAMP — классический стек технологий для запуска сайтов и приложений. В названии зашифрованы первые буквы таких компонентов, как Linux, Apache, MySQL и PHP. Вместе технологии образуют полноценную среду, в которой веб-ресурсы будут безопасно и стабильно работать.

  • Linux — операционная система сервера. Она отвечает за стабильную работу, безопасность и управление ресурсами. Большинство веб-серверов работают именно на Linux, поскольку эта операционка известна надежностью и гибкостью.

  • Apache — веб-сервер, который обрабатывает пользовательские запросы и выдает веб-страницы. Он управляет хостами, SSL-сертификатами, маршрутизацией и балансировкой нагрузки.

  • MySQL — СУБД, которая используется для хранения данных веб-ресурса. Она поддерживает целостность информации и обеспечивает быстрый доступ к нужным записям.

  • PHP — серверный язык программирования для создания динамических страниц. Он используется для написания скриптов для управления серверами, резервного копирования данных, парсинга и других важных задач. 

LAMPLAMP
Дарим до 20 000 бонусов
Дарим до 20 000 бонусов
4 000 бонусов — физическим лицам, 20 000 бонусов — юридическим

LAMP остается надежным выбором для многих проектов, особенно для систем управления контентом (CMS) вроде WordPress. Однако сегодня также широко используются стеки на основе Nginx (LEMP), а также облачные бессерверные и контейнеризированные (Docker, Kubernetes) решения. Выбор стека зависит от требований проекта к производительности, масштабируемости и архитектуре.

Evolution Compute
Подключайте дополнительные диски и подсети
Evolution Compute

Подготовка к установке

Перед установкой LAMP нужно подготовить сервер. Так можно снизить риск ошибок и проблем с зависимостями, избежать появления уязвимостей. Подготовка займет немного времени, если действовать по четкому плану. 

Обновление системы

Обновите ОС и все предустановленные пакеты с помощью команды:

Первая команда обновляет списки пакетов, вторая — устанавливает обновления для уже установленного ПО.

Обновление поможет предупредить конфликты версий при установке Apache, MySQL и PHP. Многие проблемы при развертывании стека как раз из-за устаревших пакетов. Чтобы потом не тратить время на устранение ошибок, лучше проверить все заранее.

Подготовка облачного сервера

Перед установкой LAMP нужно подключиться к серверу по SSH с помощью учетных данных, выданных провайдером. SSH-доступ позволит удаленно управлять сервером и выполнять все необходимые команды.

Где развернуть LAMP

Для тестирования и разработки вы можете использовать локальный компьютер или виртуальную машину. Для продакшн-среды рекомендуем облачные решения, например, виртуальные машины Evolution Compute от Cloud.ru с предустановленными конфигурациями и гибкими тарифами.

После подключения выполните базовые настройки безопасности. Для этого создайте пользователя без прав администратора и поставьте ограничения для входа под root-аккаунтом. Это поможет снизить риски компрометации сервера.

Шаг 1. Установка Apache

Apache — веб-сервер, принимающий HTTP-запросы от пользователей  Он обрабатывает их и возвращает запрошенные страницы. После Apache запросы поступают к PHP и другим компонентам LAMP-стека.

После установки Apache работает в качестве системной службы. Он автоматически запускается и слушает входящие подключения.

Команды для установки

Установите Apache из официальных репозиториев:

Когда завершится процесс установки, Apache автоматически запустится. Убедитесь, что он нормально работает, проверив статус:

Если служба не выдает ошибок, значит, Apache готов к нормальной работе. 

Настройка брандмауэра

За безопасность на сервере отвечает брандмауэр UFW. Проверьте, что он работает:

Создайте в настройках UFW профиль для Apache и разрешите принимать HTTP-трафик на порту 80, применив команду:

Проверьте, применились ли новые правила:

Чтобы Apache мог работать с HTTP-запросами, в настройках брандмауэра должен появиться его профиль и открытый порт 80.

Проверка работы Apache

Для проверки работы веб-сервера Apache, откройте в своем браузере его IP-адрес:

Если установка прошла успешно, вы увидите стандартную приветственную страницу Apache2. Это значит, что Apache активно обрабатывает запросы.

Убедитесь, что Apache использует порт 80. Для этого выполните следующую команду:

Настройка HTTPS (SSL/TLS) 

Для защиты передаваемых данных настоятельно рекомендуется настроить шифрование HTTPS. Для этого:

  • Установите клиент Certbot для получения бесплатных сертификатов от Let's Encrypt:

  • Получите и настройте сертификат для вашего домена:

  • Брандмауэр UFW должен разрешать трафик на порт 443 (HTTPS). Если вы использовали профиль Apache, он открывает только порт 80. Для открытия обоих портов можно использовать профиль Apache Full:

Шаг 2. Установка MySQL

MySQL — система для управления базами данных, где хранится и обрабатывается информация веб-ресурсов. В LAMP-стеке она помогает работать с пользователями, контентом, настройками.

После установки MySQL запускается как системная служба — в фоновом режиме. Она через PHP обрабатывает запросы от веб-приложений. 

Команда для установки

Установите сервер MySQL:

После установки MySQL автоматически запустится, но все же проверьте состояние системы:

Если система нормально запускается, можно переходить к настройкам базы данных. 

Во многих дистрибутивах Linux, включая Ubuntu, пакет mysql-server теперь часто является метапакетом, устанавливающим MariaDB — полностью совместимый и активно развиваемый форк MySQL. Все приведённые команды работают с MariaDB идентично.

Настройка безопасности MySQL

Основные команды:

Действие
Команда
Что делает
Базовая настройка безопасности
sudo mysql_secure_installation
Помогает задать пароль для пользователя root, удалить тестовую базу данных и ненужных пользователей
Вход в MySQL под учетной записью root
sudo mysql
Подключение к MySQL с правами администратора
Установка или смена пароля root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPassword';
Задает надежный пароль и методы аутентификации
Удаление анонимных пользователей
DELETE FROM mysql.user WHERE User='';
Удаляет безымянные учетные записи, которые могут использовать злоумышленники
Запрет удаленного доступа под учетной записью root
UPDATE mysql.user SET Host='localhost' WHERE User='root';
Разрешает доступ root только на локальной машине
Удаление тестовой базы данных
DROP DATABASE IF EXISTS test;
Убирает базу данных, которая не будет использоваться в продакшене
Удаление прав доступа и применение изменений
FLUSH PRIVILEGES;
Применяет изменения в правах доступа, сделанные напрямую в таблицах MySQL (через UPDATE, INSERT). При использовании команд GRANT или CREATE USER выполняется автоматически.
Просмотр пользователей
SELECT User, Host FROM mysql.user;
Позволяет проверить, какие в системе есть учетные записи
Проверка метода аутентификации
SELECT user, host, plugin FROM mysql.user;
Помогает выявить небезопасные или устаревшие методы входа
Создание пользователя приложения
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'StrongPassword';
Создает пользователя для веб-приложения перед выдачей прав
Проверка назначенных полномочий
SHOW GRANTS FOR 'app_user'@'localhost';
Контроль доступа и аудит прав пользователя
Выдача прав пользователю
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'localhost';
Дает приложению права на базу данных mydb

В MySQL 8.0 и выше используется более безопасный плагин аутентификации caching_sha2_password по умолчанию. Приведённая команда использует его. Если вам необходимо использовать старый плагин mysql_native_password для совместимости с некоторыми приложениями, выполните:

Проверка работы MySQL

Чтобы убедиться, что СУБД MySQL работает надлежащим образом, попробуйте подключиться к ее серверу под пользователем root. Примените команду:

Если увидите консоль MySQL, значит, сервер работает. Для уверенности можете посмотреть список баз данных. Используйте команду:

Если все базы видны, значит, система MySQL готова к работе в составе LAMP-стека.

Установка PHP

Установите PHP и модули, которые нужны для работы с базами данных и веб-приложениями:

Что включено в команду:

  • libapache2-mod-php — интеграция PHP с Apache;

  • php-mysql — работа с базами данных MySQL;

  • php-curl — HTTP-запросы к внешним сервисам;

  • php-mbstring и php-xml — поддержка строк и XML;

  • php-gd — работа с изображениями;

  • php-zip — работа с архивами.

Чтобы применить изменения, перезапустите Apache командой:

Проверка установки PHP

Проверьте в системе версию PHP:

Создайте файл, который поможет проверить интеграцию PHP с Apache:

Добавьте в файл код:

Сохраните файл и откройте его в браузере:

Файл info.php раскрывает детали конфигурации вашего сервера и должен быть удален сразу после проверки. Не оставляйте его на рабочем сервере. Для удаления выполните команду:

Настройка виртуальных хостов

Виртуальные хосты (VirtualHosts) Apache — это не виртуальные машины, а механизм для запуска нескольких веб-сайтов на одном физическом или виртуальном сервере. Они нужны, если хотите запустить несколько сайтов на одном сервере с разными доменами или поддоменами либо отделить тестовые веб-ресурсы от рабочих. Apache поддерживает виртуальные хосты «из коробки», дополнительное ПО не потребуется.

Можно использовать виртуальные машины Evolution Compute от Cloud.ru с готовыми конфигурациями вычислительных мощностей.  

Создание директорий и прав доступа

Для каждого сайта рекомендуется создать свою директорию в каталоге /var/www. Пример для сайта example.com:

Затем назначьте владельца директории. Это может быть пользователь, от имени которого вы работаете и используемая Apache группа www-data. Как выглядит команда:

Затем установите корректные права доступа, чтобы Apache мог читать файлы сайта. Пример:

Для проверки создайте тестовый файл:

Можно добавить простой HTML-текст для проверки работы виртуального хоста.

Создание и запуск виртуальных хостов

Конфигурации виртуальных хостов вы найдете в каталоге Apache /etc/apache2/sites-available. Создайте там новый конфигурационный файл:

Как может выглядеть стандартная конфигурация виртуального хоста:

Сохраните созданный файл и запустите сайт. Пример команды:

Чтобы применить изменения, перезапустите веб-сервер:

Если у вас несколько сайтов, на всякий случай отключите стандартный виртуальный хост:

Проверка работы виртуального хоста

Чтобы проверить работу виртуального хоста в Ubuntu, убедитесь, что все в порядке с конфигурацией. Для этого выполните команду:

Если все в порядке, появится сообщение Syntax OK. Увидев его, перезапустите веб-сервер. Команды:

Потом откройте браузер и перейдите по адресу виртуальной машины, например, http://example.com. Если отображается сайт, значит, хост нормально работает. Если домен пока не зарегистрирован, добавьте его в локальный файл /etc/hosts и укажите строку 127.0.0.1 example.com. Это необходимо, чтобы браузер направлял запросы на локальный сервер.

Дополнительно можно применять команду curl -I http://example.com, которая показывает заголовки HTTP-ответа. Если код ответа 200,подключение произошло успешно. 

Чтобы следить за настройками виртуального хоста, смотрите логи Apache. В файле /var/log/apache2/error.log отображаются ошибки, в  /var/log/apache2/access.log — запросы. 

Заключение

Выполнив инструкции, вы получите LAMP-стек, который готов поддерживать работу веб-приложений, блогов, интернет-магазинов и онлайн-сервисов. Apache обрабатывает запросы пользователей, MySQL — сохраняет данные, PHP — отвечает за логику веб-ресурса. Чтобы проект работал стабильно, не забывайте о безопасности, своевременных обновлениях компонентов, резервном копировании и мониторинге сервера.

Продукты из этой статьи:
Иконка-Evolution Compute
Evolution Compute
28 января 2026

Вам может понравиться