LEMP-стек
Nginx, MariaDB, PHP-FPM и phpMyAdmin на одном сервере - классическая база под WordPress, Laravel или самописный сайт. Развернули стек на Fatmetal Cloud Server, замерили ресурсы, проверили запись в базу и разобрали, где он ломается.
Вердикт
- под один-два PHP-сайта: WordPress, Laravel, самописное на PHP
- кому нужен прозрачный хостинг без панели и абонплаты за нее
- кто хочет полный root-доступ к серверу и контроль над конфигами
- нужна managed-БД, автоскейл, Kubernetes или изоляция десятков сайтов
- не готовы сами следить за обновлениями и бэкапами базы
Проверено на Nginx 1.30.3 / MariaDB 11.8.8 / PHP 8.3.6 / phpMyAdmin 5.2.3, Ubuntu 24.04, июль 2026. На новых версиях результаты могут отличаться.
Что такое LEMP и что он заменяет
LEMP - это набор из четырех компонентов на одном сервере: Linux, nginx (буква E - от произношения engine-x), MariaDB (замена MySQL) и PHP. Плюс phpMyAdmin для работы с базой через браузер. Это классическая связка, на которой работает огромная доля веба: nginx принимает HTTP-запросы и отдает статику, PHP-FPM исполняет код приложения, MariaDB хранит данные. Готовый LEMP - это не абстрактная теория, а собранная и настроенная база, на которую вы кладете свой сайт: WordPress, Laravel или что-то самописное.
Чаще всего LEMP берут как альтернативу хостинг-панелям вроде cPanel или ISPmanager для простого случая - когда нужен один-два сайта, а не сотня клиентских аккаунтов с изоляцией и биллингом. За панель вы платите лицензией и получаете слой абстракции; за LEMP вы платите только за сервер и получаете прямой контроль над конфигами. Управление базой при этом остается удобным: phpMyAdmin дает тот же веб-интерфейс к MariaDB, что и панель, но без всего остального.
LEMP против панели и против PaaS
Сравнение по тому, что влияет на выбор.
| Параметр | LEMP на своем сервере | Панель (cPanel / ISPmanager) или PaaS |
|---|---|---|
| Цена | Только сервер (500 руб/мес) | Сервер плюс лицензия панели или подписка PaaS |
| Контроль | Полный root, свои конфиги nginx и PHP | Панель - через ее интерфейс; PaaS - ограничен платформой |
| Изоляция многих сайтов | Ручная, все в одном системном окружении | Готовые аккаунты с квотами и изоляцией |
| Обновления и бэкапы | На вас: apt, дампы БД, снапшоты | Часть автоматизирует панель или платформа |
| Порог входа | Нужна база по Linux и nginx | Клик в веб-интерфейсе |
| Ресурсы в покое | 533 MB RAM - легкий | Панель добавляет свои демоны сверху |
Из чего собран стек
Мы не берем случайные версии из системного репозитория, а собираем стек из проверенных источников. Nginx 1.30.3 - из официального репозитория nginx.org (ветка stable), а не из Ubuntu. MariaDB 11.8.8 - из официального репозитория MariaDB, это серия 11.8 LTS с долгой поддержкой. PHP 8.3.6-FPM - stock-версия Ubuntu 24.04; ветка 8.3 активна, security-фиксы к ней идут примерно до 2027 года. phpMyAdmin 5.2.3 ставится tarball-ом - это последний релиз на момент сборки.
Связка внутри работает так: nginx слушает 80 и 443, статику отдает сам, а запросы к .php передает по Unix-сокету в PHP-FPM. PHP-FPM исполняет код и при необходимости ходит в MariaDB. MariaDB слушает только localhost (127.0.0.1:3306) и наружу не торчит - это важная деталь безопасности. Демо-приложение в нашей сборке - простая гостевая книга: форма пишет запись в MariaDB через PHP, и запись сразу видна на странице. Это доказывает, что весь путь nginx -> PHP -> база работает, а не просто отдается статичный index.
Как выглядит рабочий стек
Живой стенд: демо-сайт и phpMyAdmin с реальными данными.
В маркетплейсе Fatmetal
Не хотите ставить руками?
Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий домен, валидный TLS и файл с доступами.
Рекомендуемая конфигурация:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe от 450 ₽/мес
Развертывание на Fatmetal
Fatmetal Cloud Server, тариф CPU2-RAM4-DISK50, Ubuntu 24.04.
Создать VM
Тариф CPU2-RAM4-DISK50 (500 руб/мес), Ubuntu 24.04. Два ядра и 4 GB RAM - с запасом для одного-двух сайтов.
Развернуть стек
Install-скрипт ставит nginx из nginx.org, MariaDB 11.8 из официального репозитория, PHP 8.3-FPM и phpMyAdmin, создает базу и MySQL-пользователя приложения, прописывает конфиги. Все сервисы уходят в systemd enable - стек переживает ребут.
Домен и TLS
Fatmetal дает magic-DNS: домен вида
<ip-с-дефисами>.fatmetal.netрезолвится в IP сервера автоматически. Сертификат выпускается через Let's Encrypt, http редиректит на https (301). Отдельно покупать домен для старта не нужно.
VM подняли AI-агентом через MCP-сервер Fatmetal. Провижн сервера, установка стека, DNS через magic-DNS и сертификат Let's Encrypt - все сделано инструментами на нашей инфраструктуре. На проверке: curl https://<домен>/ вернул HTTP 200 за 0.38 с, сертификат от Let's Encrypt (не self-signed), POST в гостевую книгу реально записал строку в MariaDB.
Что измерили после запуска
Цифры с тестового CPU2-RAM4-DISK50, Ubuntu 24.04, в покое.
| RAM в покое (used / total) | 533 / 3915 MB |
| Диск в покое (used) | 2.3 GB (5%) |
| RSS nginx / mariadbd | 26 / 117 MB |
| Слушают наружу | 0.0.0.0:80, 0.0.0.0:443 |
| MySQL | только 127.0.0.1:3306 (не торчит наружу) |
| Ответ https-корня | HTTP 200 за 0.38 c |
| Запись в базу | проверена: POST в гостевую книгу дошел до MariaDB |
| Переживает ребут | да, все сервисы поднимаются сами |
Стек легкий: 533 MB RAM в покое из 4 GB. Диск занят на 2.3 GB - остальные ~46 GB под ваш сайт, загрузки и базу. тарифа CPU2-RAM4-DISK50 за 500 руб/мес хватает под один-два PHP-сайта; запас по RAM и диску большой.
Как войти
Сайт открывается по домену magic-DNS (https://<ip-с-дефисами>.fatmetal.net/). Управление базой - через phpMyAdmin по адресу /phpmyadmin/ на том же домене. Вход в phpMyAdmin - не отдельным аккаунтом, а MySQL-пользователем приложения (в нашей сборке это пользователь demo).
Пароли не зашиты в статью и не пересылаются - они лежат в файле на самом сервере: /root/lemp-credentials.txt (права 600, доступен только root). В нем домен, адрес phpMyAdmin, имя и пароль MySQL-пользователя приложения, имя базы и root-пароль MariaDB. Пароли генерируются заново на каждом деплое, так что дефолтных общих значений нет. Чтобы войти в phpMyAdmin, зайдите на сервер по SSH, прочитайте файл и используйте пару пользователя приложения.
MariaDB слушает только localhost. Снаружи в базу не подключиться напрямую - только через phpMyAdmin (за TLS) или по SSH-туннелю. Это осознанное решение: порт 3306 наружу не открыт.
Где может сломаться
На что наткнулись при сборке и за чем следить в проде.
Причина. Пакет nginx с nginx.org запускает воркеры под пользователем nginx, а сокет PHP-FPM принадлежит www-data. Воркер не может открыть чужой сокет и отдает 502.
Решение. Привести пользователей к одному: прописать user www-data; в nginx.conf (у нас это уже зашито в install-скрипт). Классические грабли именно nginx.org-пакета, стоковый Ubuntu-nginx уже под www-data.
phpMyAdmin открыт наружу. Он доступен по /phpmyadmin/ за TLS, но это публичный вход в вашу базу. Для прода ограничьте доступ (по IP, basic-auth или вынесите за SSH-туннель) и держите phpMyAdmin обновленным - это популярная мишень сканеров.
Обновления на вас. Панели тут нет: следить за security-апдейтами nginx, PHP и MariaDB через apt придется самому. PHP 8.3 получает фиксы примерно до 2027 - потом планируйте переход на новую ветку.
Бэкап базы не настроен из коробки. Снапшот диска - это про всю VM, но для базы надежнее регулярный mysqldump в отдельное место. Без бэкапа потеря диска означает потерю данных сайта.
Связь с другими стеками
- WordPress - кладется прямо на LEMP: корень nginx на папку сайта, база в MariaDB, wp-config на MySQL-пользователя приложения.
- Laravel - тоже ложится на этот стек: PHP 8.3-FPM подходит, корень nginx на /public, миграции в MariaDB.
- Бэкапы - дампы MariaDB (mysqldump) плюс снапшоты диска VM.
- Свой домен - вместо magic-DNS можно направить A-запись на IP и перевыпустить сертификат Let's Encrypt на нужное имя.
Когда это НЕ ваш выбор
Нужна managed-база данных
Если хотите, чтобы кто-то другой отвечал за бэкапы, репликацию и обновления СУБД - берите managed-DB или PaaS. В LEMP база это ваш MariaDB на том же сервере, за который отвечаете вы.
Нужен автоскейл или Kubernetes
LEMP - это один сервер. Горизонтальное масштабирование, автоскейл под нагрузку и оркестрация - это к Kubernetes или облачным PaaS, а не к одиночной VM с nginx и PHP.
Много сайтов с изоляцией
Десятки клиентских сайтов с квотами, отдельными аккаунтами и биллингом - это работа хостинг-панели (cPanel, ISPmanager). На голом LEMP изоляцию придется городить руками, и это быстро становится больно.
Частые вопросы
Чем LEMP отличается от LAMP?
Буквой M против A: в LEMP веб-сервер nginx (engine-x), в LAMP - Apache. nginx экономнее по памяти и лучше отдает статику под нагрузкой; в остальном стек тот же - Linux, база, PHP.
Можно поставить сюда WordPress?
Да, это одна из основных задач стека. nginx-корень на папку WordPress, база в MariaDB, доступ к базе через phpMyAdmin. Laravel и самописные PHP-сайты - так же.
MariaDB торчит наружу?
Нет. Она слушает только 127.0.0.1:3306. Снаружи в базу можно попасть лишь через phpMyAdmin (за TLS) или SSH-туннель. Порт 3306 наружу не открыт.
Где взять пароль от phpMyAdmin?
В файле /root/lemp-credentials.txt на самом сервере (права 600). Вход - MySQL-пользователем приложения. Пароли генерируются заново на каждом деплое.
Почему nginx, а не из репозитория Ubuntu?
Берем ветку stable с nginx.org - там свежее и предсказуемее по версиям. Побочный эффект - воркеры под пользователем nginx, из-за чего важно свести их с www-data сокета PHP-FPM (см. раздел про 502).
Хватит ли тарифа CPU2-RAM4-DISK50?
Для одного-двух сайтов да: в покое стек ест 533 MB RAM из 4 GB и 2.3 GB диска из 48. Запас большой; под тяжелый трафик или много сайтов берите тариф крупнее.
Можно в продакшен?
Да: TLS уже есть. Перед боем ограничьте доступ к phpMyAdmin, настройте регулярный дамп базы и следите за apt-обновлениями nginx, PHP и MariaDB.
Итог
LEMP - это проверенная временем база под PHP-сайты: nginx 1.30.3, MariaDB 11.8.8 LTS, PHP 8.3.6-FPM и phpMyAdmin 5.2.3 на Ubuntu 24.04. В покое стек занимает 533 MB RAM и 2.3 GB диска, спокойно живет на тарифе CPU2-RAM4-DISK50 за 500 руб/мес, отдает https с валидным сертификатом Let's Encrypt и реально пишет данные в базу. Честные оговорки: обновления и бэкап базы на вас, phpMyAdmin надо прикрыть, а nginx.org-пакет требует свести пользователя с сокетом PHP-FPM. Для одного-двух сайтов без панели и абонплаты - удобный и прозрачный вариант.
Рекомендуемая конфигурация для установки:
2 vCPU · 4 ГБ RAM · 50 ГБ NVMe
Не хотите устанавливать вручную?
Запустите LEMP на этой конфигурации автоматически - от 450 ₽/мес.
Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли неточность в гайде - напишите, поправим в течение дня.