Как установить LEMP на Debian 12

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

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

Вывод состояния службы Nginx - Как установить LEMP на Debian

Установка MariaDB

Для установки MariaDB также используйте пакетный менеджер apt:

$ sudo apt install mariadb-server

Для повышения уровня безопасности MariaDB запустите встроенный скрипт, который поможет минимизировать риски, связанные с безопасностью базы данных. Это особенно актуально для виртуальных серверов, которые доступны из интернета. Чтобы запустить скрипт, выполните команду:

$ sudo mysql_secure_installation

В ходе выполнения скрипт сначала предложит сменить пароль учётной записи root. На следующих шагах скрипт предложит произвести следующие действия:

  • удалить анонимных пользователей;
  • установить запрет пользователю root на удалённое подключение;
  • удалить тестовую базу данных, создаваемую MariaDB по умолчанию;
  • перезагрузить таблицы привилегий для вступления в силу внесённых изменений.

Для того, чтобы согласиться с каждым из предложенных действий, используйте клавишу Y. В случае, если вы хотите, чтобы действие не выполнялось, используйте клавишу N.

Выполнение встроенного скрипта безопасности MariaDB

Чтобы проверить работоспособность MariaDB, подключитесь к интерфейсу командной строки СУБД:

$ sudo mariadb

После подключения вы сможете выполнять SQL-запросы и административные команды. Например, следующая команда служит для вывода версии MariaDB:

SELECT version();

Вывод этой команды в нашем примере выглядит следующим образом:

Вывод версии из командной строки MariaDB

Установка 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, информация о сервере, переменных окружения и так далее.

Страница с подробной информацией о конфигурации PHP - Как установить LEMP на Debian

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

$ rm /var/www/vash-domain.ru/html/info.php

Вам также может понравиться