// Engineering Log
LAMP, LEMP или Nginx + Apache: какой веб-стек выбрать
Опубликовано 22.09.2026
// Быстрый маршрут
Эта статья относится к теме Серверы и инфраструктура.
LAMP и LEMP — два классических набора программ для сайтов на PHP: Linux, веб-сервер, база данных и PHP. Отличаются они веб-сервером: в LAMP это Apache, в LEMP — Nginx. На практике важнее другое — как именно веб-сервер запускает PHP. От этого зависят расход памяти, поведение под нагрузкой и то, нужен ли вам второй веб-сервер.
Из чего состоит стек
| Компонент | LAMP | LEMP |
|---|---|---|
| Операционная система | Linux | Linux |
| Веб-сервер | Apache HTTP Server | Nginx |
| База данных | MySQL или MariaDB | MySQL или MariaDB |
| PHP | модуль mod_php или PHP-FPM | только PHP-FPM |
Вместо MySQL в обоих стеках можно использовать PostgreSQL — большинство современных PHP-приложений это поддерживают. Название стека от этого не меняется.
Как Apache выполняет PHP
У Apache есть два способа запустить PHP.
mod_php. Интерпретатор PHP встроен прямо в процессы Apache. Это самый простой вариант, но он плохо сочетается с многопоточными моделями Apache. Сторонние расширения PHP не всегда потокобезопасны, поэтому с mod_php обычно используют модель обработки (MPM) prefork. По документации Apache, prefork — «не многопоточный сервер с заранее запущенными процессами», и он подходит сайтам, которым нужно избегать потоков из-за библиотек, не рассчитанных на многопоточность. Каждый процесс обслуживает одно соединение, поэтому при сотне одновременных посетителей нужна сотня процессов, и в каждом — полный интерпретатор PHP, даже если запрошена картинка.
PHP-FPM. PHP работает отдельной службой со своим пулом процессов, а Apache передаёт ей запросы через модуль mod_proxy_fcgi. Тогда Apache может работать в модели event: по документации, после отправки ответа рабочий поток передаёт соединение отдельному потоку-слушателю, и простаивающие keep-alive-соединения не занимают рабочие потоки. Статику Apache отдаёт сам, не трогая PHP.
Минимальная связка Apache и PHP-FPM через сокет:
<FilesMatch "\.php$">
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>Путь к сокету зависит от версии PHP и дистрибутива. Отсюда главный вывод: утверждение «Apache создаёт процесс на каждый запрос» верно только для prefork. Apache с event и PHP-FPM по устройству близок к Nginx с PHP-FPM.
Как Nginx выполняет PHP
Nginx не умеет выполнять PHP сам — встроенного модуля нет. Он всегда передаёт PHP-запросы в PHP-FPM по протоколу FastCGI, а статику отдаёт напрямую. Минимальная конфигурация:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}Файл snippets/fastcgi-php.conf есть в пакетах Debian и Ubuntu; в других дистрибутивах нужные параметры FastCGI задают вручную.
Главное практическое различие — .htaccess
Apache читает файлы .htaccess в каталогах сайта: там правила перенаправлений, защита каталогов, настройки кеширования. Многие CMS, прежде всего WordPress и Bitrix, рассчитывают на этот механизм и записывают в .htaccess свои правила. Nginx .htaccess не читает: всё задаётся в конфигурации сервера, и после изменений её нужно перечитывать.
Для администратора это плюс — конфигурация в одном месте и не проверяется на каждом запросе. Для владельца сайта на готовой CMS это может быть проблемой: правила из .htaccess придётся переносить в конфигурацию Nginx вручную, а при обновлении плагинов — следить, чтобы ничего не потерялось.
Гибрид: Nginx перед Apache
В гибридной схеме Nginx принимает соединения на портах 80 и 443, завершает HTTPS, сам отдаёт статику и передаёт остальные запросы Apache, который слушает внутренний порт, например 127.0.0.1:8080. Сайт при этом продолжает пользоваться .htaccess.
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}На стороне Apache нужен модуль mod_remoteip, чтобы в журналах и в приложении был виден настоящий адрес посетителя, а не 127.0.0.1. Приложение должно понимать заголовок X-Forwarded-Proto, иначе при HTTPS на входе оно может уйти в бесконечный редирект на HTTPS.
Эту схему по умолчанию используют многие панели управления хостингом. Подробнее об обратном прокси на Nginx и о том, как выбрать между Nginx, Apache, HAProxy, Caddy и Traefik, — в статье «Caddy vs. Traefik vs. HAProxy vs. Nginx vs. Apache».
Когда что выбирать
| Ситуация | Что выбрать |
|---|---|
Готовая CMS, которая пишет правила в .htaccess, один сайт | Apache с PHP-FPM (event) или гибрид |
| Новый проект, конфигурация в ваших руках | Nginx с PHP-FPM |
| Много сайтов на CMS, панель управления | Гибрид Nginx + Apache — так устроено в большинстве панелей |
| Приложение не на PHP (Node.js, Go, Python) | Nginx или Caddy как обратный прокси, стек LAMP/LEMP не нужен |
| Нужен автоматический HTTPS без настройки | Caddy |
Гибрид оправдан, когда нужен .htaccess. Если сайт от него не зависит, второй веб-сервер — это лишняя память, лишний уровень, где может сломаться конфигурация, и лишний пакет для обновлений.
Типичные ошибки
mod_phpс моделью event. Пакеты Debian и Ubuntu при установкеlibapache2-mod-phpпереключают Apache на prefork. Если потом вручную включить event, Apache может отказаться запускаться или работать нестабильно. С event используйте PHP-FPM.MaxRequestWorkersне по памяти. В prefork каждый процесс занимает десятки мегабайт. Документация Apache прямо говорит: значение должно быть достаточно большим для ожидаемой нагрузки и достаточно маленьким, чтобы всем процессам хватило оперативной памяти. Иначе сервер уходит в своп.- Apache в гибриде слушает внешний интерфейс. Порт 8080 должен быть доступен только с
127.0.0.1, иначе к сайту можно обратиться в обход Nginx. - Разные версии PHP в пулах. У каждой версии PHP-FPM свой сокет; проверьте, что веб-сервер указывает на нужный.
- Статика через PHP. Если все запросы, включая картинки, уходят в PHP-FPM, сервер тратит ресурсы впустую. Правила для статики должны стоять раньше правила для PHP.
// Похожая задача
Если у вас похожая ситуация
Эта статья относится к одной из рабочих тем. Можно продолжить чтение по теме, перейти на главную, чтобы понять, чем я занимаюсь, или сразу открыть услуги.
Тема статьи
Серверы и инфраструктура
VPS, Linux, веб-стек, миграции, хостинг, базы данных и базовая эксплуатация.
Часто с этим приходят
- Перенести сайт или сервис на новый сервер
- Настроить Linux, Nginx, базу данных и бэкапы
- Разобраться, почему всё работает нестабильно
// Следующий шаг
Если вам нужна не только статья, а помощь по этой теме, удобнее сразу перейти в услугу. Главная и подборка материалов остаются рядом.
Открыть услуги// Reviews
Отзывы по теме
Пришел с дорогим запросом по настройке VPS-сервера, но в процессе консультации Михаил предложил гораздо более простое и экономичное решение. В итоге сэкономил бюджет и время. Михаил — настоящий эксперт, который работает на результат клиента, а не на чек. Рекомендую!
Пришел с дорогим запросом по настройке VPS-сервера, но в процессе консультации Михаил предложил гораздо более простое и экономичное решение. В итоге сэкономил бюджет и время. Михаил — настоящий эксперт, который работает …
Настройка vps, настройка сервера
12.05.2026 · ★ 5/5
Отличная работа! Очень быстро настроил сервер, установил панель, прописал IP. Однозначно могу порекомендовать!
Отличная работа ! Очень быстро настроил сервер, установил панель прописал IP Однозначно могу по рекомендовать !
Всё отлично, помог оперативно и профессионально, спасибо, рекомендую сообществу
Всё отлично, помог оперативно и профессионально, спасибо, рекомендую сообществу
Настройка vps, настройка сервера
16.04.2026 · ★ 5/5
Было несколько проблем касаясь как технической части так и понимания в целом. Михаил быстро ответил на запрос, помог разобраться и решил проблеммы технические и помог разобраться в понимании, за что отдельное спасибо. Результатом доволен.
Было несколько проблем касаясь как технической части так и понимания в целом. Михаил быстро ответил на запрос, помог разобраться и решил проблеммы технические и помог разобраться в понимании, за что отдельное спасибо. …
Настройка vps, настройка сервера
18.02.2026 · ★ 5/5
Все было сделано быстро и четко. Рекомендую
Все было сделано быстро и четко. Рекомендую
Настройка vps, настройка сервера
17.01.2026 · ★ 5/5
Всё прошло хорошо, исполнитель быстро реагировал на вопросы и помог решить проблему. Спасибо!
Всё прошло хорошо, исполнитель быстро реагировал на вопросы и помог решить проблему. Спасибо!
Настройка vps, настройка сервера
16.12.2025 · ★ 5/5
// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
Написать в TelegramОтвечаю в течение рабочего дня (03:00–13:00 GMT)
Или оставьте заявку здесь:
// Related