Стек LEMP состоит из набора программного обеспечения (Linux, Nginx, MySQL, PHP), используемого для создания веб-серверов. В отличие от популярного стека LAMP, здесь вместо Apache используется Nginx, который может обеспечить более стабильную работу при высоких нагрузках.

Далее мы подробно расскажем, что из себя представляет LEMP, и о работе с ним.

Состав приложения

Стек LEMP понадобится тем, кто хочет самостоятельно администрировать свой сервер с большим функционалом настроек.

Для этого мы в Beget ставим последние доступные версии из репозитория:

  • Ubuntu 22.04
  • MySQL 8.0.30
  • Nginx 1.18.0
  • PHP 8.1 (php-fpm)

Nginx — веб-сервер, способный обрабатывать большое количество запросов к статичному контенту (картинки, готовый текст и т. д.).  Он используется для отображения сайта.

MySQL — система управления базами данных, в которой можно будет создать базу данных для вашего сайта. Эта система основана на принципе клиент-сервер. Клиент — то есть компьютер пользователя — отправляет запрос, а сервер баз данных обрабатывает его и отправляет ответ. MySQL хранит информацию вашего сайта.

PHP-FPM — это служба, обеспечивающая обработку PHP-кода. У Nginx нет встроенной поддержки обработки PHP наравне с некоторыми другими веб-серверами. PHP необходим для генерирования динамического контента.

Полный список устанавливаемых PHP-модулей
  • php-cli — инструменты командной строки для выполнения скриптов PHP
  • php-fpm — библиотека для связки Nginx и PHP через FastCGI. Обеспечивает выполнение PHP кода сайта
  • php-curl — библиотека позволяющая получать/отправлять даные через HTTP, FTP, HTTPS
  • php-gd — библиотека для работы с графикой
  • php-intl — позволяет приозводить операции зависяцие от локали например, форматирование, транслитерация, преобразование кодировок, операции с календарём
  • php-mbstring — поддержка расширеной кодировки
  • php-mysql — обеспечивает взаимодействие с СУБД MySQL
  • php-soap — включает поддержку SOAP протокола для обмена сообщениями.
  • php-xml — включает поддержку XML
  • php-xmlrpc — включает поддержку XML-RPC
  • php-zip — позволяет работать с ZIP архивами

Работа с LEMP

Установка LEMP из панели управления Beget происходит в один клик. Перед установкой можно выбрать конфигурацию сервера и настроить способ подключения по SSH – добавить SSH-ключ, и/или сгенерировать пароль для подключения по SSH. Если не задать ни один из способов аутентификации, пароль будет сгенерирован автоматически и отправлен на e-mail.

Для подключения к развернутому серверу, используйте команду в терминале (bash, Putty) ssh root@ip_сервера. IP-адрес сервера можно узнать в панели управления развернутым сервером. Если навести курсор, можно увидеть полную команду для подключения. Пароль для подключения мы задавали/получали ранее.

При создании сервера на почту приходят основные параметры конфигурации:

  • По умолчанию создается один виртуальный хост, который доступен по адресу http://ip_сервера
  • Директория с файлами для виртуального хоста располагается в /var/www/html. В целях безопасности рекомендуем установить права на доступ к файлам 755, а владельцем назначить www-data
  • Пароль для пользователя root к MySQL находится в файле /root/.my.cnf

В случае необходимости вы можете самостоятельно изменять любые настройки вашего веб-сервера или СУБД MySQL.

Частые вопросы по LEMP

Где находится конфигурационный файл Nginx?

Конфигурационный файл виртуального хоста, создающегося по-умолчанию, располагается в файле:
/etc/nginx/sites-enabled/default

Где находится конфигурационный файл PHP?

Конфигурационные файлы PHP-FPM находятся в директории: /etc/php/8.1/fpm

Конфигурационный файл интерпретатора PHP: /etc/php/8.1/fpm/php.ini

Как создать отдельного пользователя и доступ в MySQL?
  • Подключитесь к MySQL при помощи команды sudo mysql -uroot
  • После этого создайте нового пользователя следующей командой:
    CREATE USER 'user-name'@'localhost' IDENTIFIED BY 'password';
    Здесь user-name —  логин пользователя, а password — его пароль
  • Дайте новому пользователю все права доступа:
    GRANT ALL PRIVILEGES ON * . * TO 'user-name'@'localhost';
  • Чтобы изменения вступили в силу, выполните команду:
    FLUSH PRIVILEGES;
Как перезапустить Nginx / MySQL / PHP-FPM?

Используйте следующие команды для перезапуска сервисов:

  • Nginx: systemctl restart nginx
  • MySQL: systemctl restart mysql.service
  • PHP-FPM: systemctl restart php8.1-fpm.service
LEMP
Конфигурация:

Бесплатно с каждым сервером:


Автоматический бэкап данных
Круглосуточный мониторинг
Почтовая система
DNS-хостинг
Приватные сети
7