
LEMP − набор программного обеспечения, предназначенный для развёртывания веб-приложений. Он включает в себя следующие компоненты, образующие аббревиатуру его названия:
Linux
− операционная система, на которой работает стек;Nginx
− высокопроизводительный веб-сервер, обрабатывающий HTTP-запросы;MariaDB / MySQL
− система управления базами данных (СУБД), используемая для хранения информации;PHP
− язык программирования, обрабатывающий динамический контент на стороне сервера.
LEMP широко применяется для разработки и хостинга веб-сайтов и приложений, обеспечивая высокую производительность, масштабируемость и гибкость. Это делает данный стек популярным выбором среди разработчиков и системных администраторов при создании современных веб-проектов.
Как установить LEMP на Debian 12
Далее в статье разберём, как установить стек LEMP на VPS, работающий под управлением Debian 12. В качестве СУБД в нашем примере мы будем рассматривать MariaDB. При этом процесс установки будет состоять из нескольких этапов:
- установка Nginx;
- установка MariaDB;
- установка PHP;
- настройка и проверка работоспособности виртуального хоста.
Установка Nginx
Для начала, как всегда перед установкой нового программного обеспечения обновите список доступных пакетов из репозиториев, указанных в конфигурационных файлах Debian:
$ sudo apt update
После чего при помощи того же менеджера пакетов apt
установите Nginx:
$ sudo apt install nginx
Чтобы убедиться в корректности установки веб-сервера, можно просмотреть статус службы nginx
:
$ systemctl status nginx
В выводе команды не должно присутствовать сообщений об ошибках, а также должно быть указано, что служба запущена и установлена в автозагрузку:

Установка MariaDB
Для установки MariaDB также используйте пакетный менеджер apt
:
$ sudo apt install mariadb-server
Для повышения уровня безопасности MariaDB запустите встроенный скрипт, который поможет минимизировать риски, связанные с безопасностью базы данных. Это особенно актуально для виртуальных серверов, которые доступны из интернета. Чтобы запустить скрипт, выполните команду:
$ sudo mysql_secure_installation
В ходе выполнения скрипт сначала предложит сменить пароль учётной записи root
. На следующих шагах скрипт предложит произвести следующие действия:
- удалить анонимных пользователей;
- установить запрет пользователю
root
на удалённое подключение; - удалить тестовую базу данных, создаваемую MariaDB по умолчанию;
- перезагрузить таблицы привилегий для вступления в силу внесённых изменений.
Для того, чтобы согласиться с каждым из предложенных действий, используйте клавишу Y
. В случае, если вы хотите, чтобы действие не выполнялось, используйте клавишу N
.

Чтобы проверить работоспособность MariaDB, подключитесь к интерфейсу командной строки СУБД:
$ sudo mariadb
После подключения вы сможете выполнять SQL-запросы и административные команды. Например, следующая команда служит для вывода версии MariaDB:
SELECT version();
Вывод этой команды в нашем примере выглядит следующим образом:

Установка PHP
Установка PHP в рамках инсталляции LEMP заключается в инсталляции компонентов, необходимых для работы PHP с веб-сервером и базами данных MariaDB. В минимальном исполнении набор данных компонентов должен содержать:
php-fpm
− PHP FastCGI Process Manager, альтернативная реализация PHP, оптимизированная для работы с веб-серверами, в том числе и Nginx;php-mysql
− расширение, которое позволяет PHP взаимодействовать с базами данных MariaDB.
Для установки данных компонентов выполните команду:
$ sudo apt install php-fpm php-mysql
Если минимального набора компонентов PHP вам недостаточно, вы можете дополнительно установить набор модулей, которые смогут расширить возможности PHP для работы, например, с изображениями, строками, XML, архивами, сетевыми запросами и т.п. Данные модули устанавливаются также с использованием менеджера пакетов apt
. К таким модулям можно отнести, например:
php-curl
− предоставляет функции для работы с библиотекойcURL
, которая позволяет PHP взаимодействовать с другими серверами через HTTP, HTTPS, FTP и другие протоколы;php-gd
− предоставляет функции для работы с изображениями через библиотекуGD
, что включает в себя создание, изменение и обработку изображений, например, изменение размера, наложение водяных знаков, создание графиков и т.п.;php-mbstring
− предоставляет функции для работы с многобайтовыми строками, например, UTF-8;php-xml
− предоставляет функции для работы с XML-документами, включая их парсинг и генерацию;php-xmlrpc
− предоставляет функции для работы с протоколом XML-RPC, который используется для удалённого вызова процедур (RPC) через XML;php-zip
− предоставляет функции для работы с ZIP-архивами, включая их создание, извлечение и модификацию.
Настройка и проверка работоспособности виртуального хоста
Теперь, когда все составляющие стека LEMP в системе установлены, необходимо настроить виртуальный хост. Пример запуска домена с именем vash-domain.ru
описан в соответствующем разделе статьи нашего справочника, посвящённой настройке виртуального хоста Nginx.
После того, как вы настроили веб-страницу, необходимо обеспечить передачу PHP-файлов на обработку в Nginx для выполнения PHP-кода и генерации динамического контента. Для этого следует внести изменения в конфигурационный файл Nginx, который содержит настройки для конкретного веб-сайта. В нашем примере таким файлом является /etc/nginx/sites-available/vash-domain.ru
. Исходя из этого, откройте для редактирования данный файл:
$ sudo nano /etc/nginx/sites-available/vash-domain.ru
И добавьте в него блоки location
:
- блок
location ~ \.php$
, который отвечает за обработку PHP-файлов; - блок
location ~ /\.ht
, запрещающий доступ к файлам, начинающимся с.ht
, которые используются в Apache, но не используются в Nginx, и доступ к ним может представлять угрозу безопасности, так как они содержат некоторую конфиденциальную информацию, например, пароли.
server {
listen 80;
listen [::]:80;
root /var/www/vash-domain.ru/html;
index index.html index.htm index.nginx-debian.html;
server_name vash-domain.ru www.vash-domain.ru;
location /
{
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
Чтобы проверить работоспособность PHP, в каталоге, содержащем файлы веб-страницы, создайте файл info.php
:
$ nano /var/www/vash-domain.ru/html/info.php
В который добавьте следующий код:
<?php
phpinfo();
После чего закройте файл info.php
, сохранив внесённые изменения, откройте браузер на вашем локальном компьютере и перейдите на http://vash-domain.ru/info.php
, где замените vash-domain.ru
на доменное имя вашего сайта. В результате должна открыться страница с подробной информацией о конфигурации PHP, такой как версия PHP, настройки PHP, загруженные модули PHP, информация о сервере, переменных окружения и так далее.

Поскольку страница phpinfo()
может содержать конфиденциальную информацию о сервере, её не рекомендуется оставлять доступной. Исходя из чего, после того, как вы убедились в работоспособности PHP, удалите файл info.php
:
$ rm /var/www/vash-domain.ru/html/info.php