Стек LEMP состоит из набора программного обеспечения (Linux, Nginx, MySQL, PHP), используемого для создания веб-серверов. В отличие от популярного стека LAMP, здесь вместо Apache используется Nginx, который может обеспечить более стабильную работу при высоких нагрузках.
Далее мы подробно расскажем, что из себя представляет LEMP, и о работе с ним.
Состав приложения
LEMP от Beget — это готовый набор ПО для создания веб-серверов, не требующий отдельной установки и настройки для работы.
Стек 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-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
Установка набора ПО из панели управления 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
Конфигурационный файл виртуального хоста, создающегося по-умолчанию, располагается в файле: /etc/nginx/sites-enabled/default
Конфигурационные файлы PHP-FPM находятся в директории: /etc/php/8.1/fpm
Конфигурационный файл интерпретатора PHP: /etc/php/8.1/fpm/php.ini
- Подключитесь к 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:
systemctl restart nginx
- MySQL:
systemctl restart mysql.service
- PHP-FPM:
systemctl restart php8.1-fpm.service