Как установить LEMP-стек (Linux + Nginx + MySQL + PHP)

Как установить LEMP-стек (Linux + Nginx + MySQL + PHP)

Для запуска современных сайтов и приложений часто используют LEMP-стек: Linux, Nginx, MySQL/MariaDB и PHP. Такая связка сочетает стабильность и высокую производительность, позволяя быстро обрабатывать запросы и работать с динамическим контентом.

LEMP подходит для веб-сервисов любого масштаба: личный блог, корпоративные сайты, интернет-магазины и приложения любой сложности. Гибкая настройка и низкое потребление ресурсов делают его востребованным решением среди разработчиков и системных администраторов.

В статье разберем пошагово, как установить LEMP-стек.

Шаг 1. Подготовьте сервер

  1. Подключитесь к серверу по SSH 
  2. Создайте нового пользователя (чтобы не работать под root):
    adduser userName
  3. Дайте ему права администратора:
    usermod -aG sudo userName
  4. Переключитесь на нового пользователя:
    su - userName
  5. Обновите систему:
    sudo apt-get update && sudo apt-get upgrade -y

Шаг 2. Установите и настройте Nginx

  1. Установите веб-сервер:
    sudo apt-get install nginx
  2. Откройте порты в firewall:Для HTTP (80):

    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables-save

    Для HTTPS (443):

    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    sudo iptables-save

  3. Перейдите по IP-адресу сервера — должна открыться стандартная страница Nginx.

Шаг 3. Установите и настройте MySQL

  1. Установите СУБД. В нашем случае это будет MySQL :
    sudo apt-get install mysql-server
  2. Подключитесь к MySQL под root:
    mysql -u root -p
  3. Создайте пользователя:CREATE USER 'user-name'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'user-name'@'localhost';
    FLUSH PRIVILEGES;
  4. Создайте базу данных:
    CREATE DATABASE BaseName;

Шаг 4. Установите и настройте PHP

  1. Установите PHP и модули:
    sudo apt-get install php-fpm php-mysql
  2. Определите версию PHP
    php -v
  3. Откройте файл настроек php.ini:
    sudo nano /etc/php/X.X/fpm/php.ini (вместо X.X подставьте свою версию, например 7.4).
  4. Найдите строку
    ;cgi.fix_pathinfo=1
  5.  Уберите ; и замените на:
    cgi.fix_pathinfo=0
  6. Перезапустите PHP:
    sudo systemctl restart phpX.X-fpm

Шаг 5. Настройте Nginx для работы с PHP

  1. Откройте конфигурацию:
    sudo nano /etc/nginx/sites-available/default
  2. Внесите изменения:

    в строку index добавьте index.php;
    в server_name укажите домен или IP;
    раскомментируйте блок location ~ \.php$ и настройте fastcgi_pass unix:/run/php/phpX.X-fpm.sock;
    раскомментируйте блок location ~ /\.ht.

  3. Проверьте файл на ошибки:
    sudo nginx -t
  4. Перезапустите Nginx:
    sudo systemctl reload nginx

Шаг 6. Проверьте работу сервера

  1. Создайте тестовый файл:
    sudo bash -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php
  2. Перейдите в браузере по адресу:
    http://IP_сервера/info.php
  3. Убедитесь, что открылась страница с параметрами PHP.
  4. Удалите тестовый файл:

sudo rm /var/www/html/info.php

Все готово: теперь на сервере установлен и настроен LEMP-стек. Вы можете размещать сайты и подключать базы данных.