Установка, настройка и удаление LEMP-сервера в Linux

LEMP-сервер — это современная и высокопроизводительная альтернатива классическому LAMP. Аббревиатура означает: Linux, ENginx (произносится как «engine-x»), MySQL/MariaDB, PHP/Python/Perl. Стек LEMP широко используется для хостинга высоконагруженных веб-проектов благодаря эффективности Nginx. В этом руководстве мы подробно разберём, как установить, настроить и полностью удалить LEMP-сервер в популярных дистрибутивах Linux: Ubuntu/Debian, Fedora/RHEL и Arch Linux/Manjaro.

Что такое LEMP и чем он отличается от LAMP?

Схема архитектуры и взаимодействия компонентов LEMP-стека (Nginx, PHP-FPM, MySQL)
Принцип работы LEMP-стека

Ключевое отличие LEMP от LAMP — замена веб-сервера Apache на Nginx. Nginx работает по асинхронной, событийно-ориентированной архитектуре, что позволяет ему эффективнее обрабатывать большое количество одновременных подключений с меньшим потреблением памяти. PHP в этом стеке выполняется не как модуль веб-сервера, а как отдельная служба PHP-FPM (FastCGI Process Manager), с которой Nginx взаимодействует. Это делает LEMP отличным выбором для современных сайтов и веб-приложений.

Часть 1: Установка LEMP-сервера

Для дистрибутивов на основе Debian/Ubuntu (Ubuntu, Linux Mint, Debian)

# 1. Обновление системы и установка Nginx

sudo apt update && sudo apt upgrade -y

sudo apt install nginx -y

sudo systemctl enable —now nginx

# 2. Установка MySQL Server

sudo apt install mysql-server -y

sudo systemctl enable —now mysql

sudo mysql_secure_installation

# 3. Установка PHP и PHP-FPM

sudo apt install php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip -y

sudo systemctl enable —now php8.2-fpm # Версия PHP может отличаться

Для дистрибутивов на основе Fedora/RHEL (Fedora, CentOS, AlmaLinux)

# 1. Обновление системы и установка Nginx

sudo dnf update -y

sudo dnf install nginx -y

sudo systemctl enable —now nginx sudo firewall-cmd —permanent —add-service=http —add-service=https

sudo firewall-cmd —reload

# 2. Установка MariaDB (аналог MySQL)

sudo dnf install mariadb-server mariadb -y

sudo systemctl enable —now mariadb

sudo mysql_secure_installation

# 3. Установка PHP и PHP-FPM

sudo dnf install php php-fpm php-mysqlnd php-curl php-gd -y

sudo systemctl enable —now php-fpm

Для дистрибутивов на основе Arch (Arch Linux, Manjaro)

# 1. Обновление системы и установка Nginx

sudo pacman -Syu —noconfirm

sudo pacman -S nginx —noconfirm

sudo systemctl enable —now nginx

# 2. Установка MariaDB

sudo pacman -S mariadb —noconfirm

sudo mysql_install_db —user=mysql —basedir=/usr —datadir=/var/lib/mysql

sudo systemctl enable —now mysqld

sudo mysql_secure_installation

# 3. Установка PHP и PHP-FPM

sudo pacman -S php php-fpm php-gd php-sqlite —noconfirm

sudo systemctl enable —now php-fpm

Пример установки компонентов LEMP-стека в терминале Ubuntu Linux
Установка Nginx, MySQL и PHP-FPM в дистрибутивах на основе Debian/Ubuntu

Часть 2: Настройка Nginx для работы с PHP-FPM

Это ключевой шаг в настройке LEMP. Необходимо настроить виртуальный хост в Nginx для обработки PHP-запросов.

Создайте новый конфигурационный файл для вашего сайта (например, myproject.conf) в директории /etc/nginx/sites-available/ (в Ubuntu/Debian) или /etc/nginx/conf.d/ (в Fedora/Arch).

Добавьте базовую конфигурацию. Убедитесь, что в блоке location ~ \.php$ указан корректный сокет или адрес службы PHP-FPM (например, unix:/run/php/php8.2-fpm.sock для Ubuntu).

Пример блока для обработки PHP:

location ~ \.php$ {

        include snippets/fastcgi-php.conf; # В Ubuntu этот файл есть по умолчанию

       fastcgi_pass unix:/run/php/php8.2-fpm.sock;

       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

       include fastcgi_params;

}

Активируйте конфигурацию и проверьте синтаксис:

# Для Ubuntu/Debian

sudo ln -s /etc/nginx/sites-available/myproject.conf /etc/nginx/sites-enabled/

sudo nginx -t # Проверка конфигурации

sudo systemctl reload nginx

Проверка работоспособности

Проверка Nginx: Откройте браузер и перейдите по адресу http://ваш_сервер. Вы должны увидеть приветственную страницу Nginx.

Проверка PHP через Nginx: Создайте файл info.php в корневой директории вашего сайта (например, /var/www/html/) с содержимым <?php phpinfo(); ?>. Откройте в браузере http://ваш_сервер/info.php. Должна загрузиться страница с информацией о конфигурации PHP.

Страница phpinfo(), успешно загруженная через сервер Nginx (LEMP-стек)
Страница phpinfo(), отображённая через Nginx, подтверждает корректную работу связки Nginx + PHP-FPM

Часть 3: Полное удаление LEMP-сервера

Для дистрибутивов на основе Debian/Ubuntu

sudo systemctl stop nginx mysql php8.2-fpm

sudo apt purge nginx nginx-common mysql-server php* -y

sudo apt autoremove -y —purge

sudo rm -rf /etc/nginx /var/www/html/* /var/lib/mysql

Для дистрибутивов на основе Fedora/RHEL

sudo systemctl stop nginx mariadb php-fpm

sudo dnf remove nginx mariadb-server php* -y

sudo dnf autoremove -y

sudo rm -rf /etc/nginx /var/lib/mysql

Для дистрибутивов на основе Arch

sudo systemctl stop nginx mysqld php-fpm

sudo pacman -Rns nginx mariadb php php-fpm —noconfirm

sudo rm -rf /etc/nginx /var/lib/mysql

Итог: LAMP vs LEMP — что выбрать?

  • Выберите LAMP (Apache), если вам нужна максимальная простота начальной настройки, поддержка .htaccess для управления доступом и переадресациями на уровне директорий, или вы работаете с устаревшими приложениями, заточенными под Apache.

  • Выберите LEMP (Nginx), если для вас критичны производительность и эффективность при высокой нагрузке, экономия оперативной памяти или вы используете современные фреймворки и статический контент.

Установив LEMP-сервер, вы получаете мощную, отзывчивую и ресурсоэффективную платформу для веб-разработки и хостинга, которая отлично справляется как с небольшими проектами, так и со значительными нагрузками.