Стек LEMP включает пакеты Nginx (Engine X), MySQL/MariaDB и PHP/Python, установленные в системе Linux и настроенные для совместной работы в качестве системы хостинга веб-сайтов, приложений или выполнения других функций. В данном руководстве мы рассмотрим установку стека LEMP на примере Ubuntu 18.04.
Для запуска рассмотренных команд потребуется доступ к серверу по SSH и root-привилегии (или использование команды sudo).
Установка веб-сервера Nginx
Обновите программные пакеты и установите Nginx при помощи менеджера пакетов apt-get. Nginx — быстрый, производительный и простой в настройке веб-сервер с открытым исходным кодом, поддерживающий функции балансировки нагрузки и обратного прокси.
$ sudo apt-get update $ sudo apt-get install nginx
После установки служба ngnix должна автоматически запуститься. Также должен включиться ее запуск при загрузке. Проверить состояние службы можно следующей командой:
$ sudo systemctl status nginx
При необходимости вручную запустить службу и активировать ее автоматический запуск при загрузке нужно выполнить следующие команды:
$ sudo systemctl start nginx $ sudo systemctl enable nginx
Если в вашей системе есть брандмауэр, нужно открыть порты 80 (HTTP) и 443 (HTTPS), чтобы разрешить клиентам запросы на веб-сервер, а затем перезагрузить брандмауэр, например:
$ sudo ufw allow 80/tcp $ sudo ufw allow 443/tcp $ sudo ufw reload
Для проверки правильности работы ngnix нужно ввести в строке браузера имя или адрес вашего веб-сервера:
http://доменое_имя/
Или
http://IP-адрес_сервера/
Если установка была выполнена правильно, вы увидите тестовую страницу Nginx:
Установка MariaDB
Для установки системы управления базами данных MariaDB (разрабатываемая сообществом ветвь MySQL) выполните команду:
$ sudo apt-get install mariadb-server mariadb-client
Служба должна автоматически запуститься после установки. Это можно проверить следующей командой (если она не запущена, нужно аналогично предыдущему разделу запустить ее и активировать автоматический запуск при загрузке):
$ sudo systemctl status mysql
Теперь нужно обеспечить минимальную безопасность базы данных при помощи специального скрипта (входит в комплект установки):
$ sudo mysql_secure_installation
Дайте ответ y (yes, да) на следующие вопросы, а также задайте пароль для пользователя root:
Set root password? [Y/n]: y Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Установка PHP
PHP — популярный скриптовый язык, используемый для создания динамического содержимого веб-сайтов. Все необходимые для веб-разработки модули PHP можно установить следующей командой (версия по умолчанию для репозиториев Ubuntu — PHP 7.2)
$ sudo apt-get install php php-fpm php-common php-mysql php-gd php-cli
После установки PHP служба PHP7.2-FPM (реализация FastCGI сервера) также должна запуститься автоматически. Это можно проверить следующей командой:
$ sudo systemctl status php7.2-fpm
Теперь нужно настроить PHP-FPM для правильного представления PHP-приложений или сайтов. Параметры конфигурации находятся в файле /etc/php/7.2/fpm/php.ini. Откройте его любым текстовым редактором:
$ sudo vim /etc/php/7.2/fpm/php.ini
Найдите строку ;cgi.fix_pathinfo=1 и замените ее на cgi.fix_pathinfo=0, чтобы при работе PHP рассматривал только указанный в явном виде путь и прекращал обработку, если файл не найден.
Затем в разделе серверного блока по умолчанию файла конфигурации сервера Nginx (/etc/nginx/sites-available/default) настройте обработку PHP-скриптов при помощи PHP-FPM:
$ sudo vim /etc/nginx/sites-available/default
Чтобы передавать PHP-скрипты серверу FastCGI, раскомментируйте следующий раздел:
location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; }
После внесения изменений перезапустите службы nginx и php7.2-fpm, чтобы они вступили в силу:
$ sudo systemctl restart php7.2-fpm $ sudo systemctl restart nginx
Теперь можно проверить правильность настройки PHP, создав в корне документов вашего сервера простую страничку info.php. Для этого требуется всего одна команда:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
Затем откройте веб-бразуер и введите любой из следующих адресов, чтобы увидеть информационную страницу PHP.
http://доменное_имя/info.php
или
http://IP-адрес_сервера/info.php
Заключение
Мы рассмотрели установку стека LEMP. Данный набор является платформой, на которую могут устанавливаться веб-сайты и веб-приложения. Для более подробной информации обратитесь к соответствующим man-страницам.