Под LEMP подразумевается комплект инструментов, позволяющих работать с динамическими интернет-страницами. Эта аббревиатура расшифровывается как Linux, Nginx, MySql, PHP.

В случае с серверным дистрибутивом Ubuntu 18.04 это хорошее решение для развертывания веб-сервера и вспомогательных компонентов для его работы.

Как установить и настроить LEMP-стек на Ubuntu 18.04

Nginx

Nginx – это современный веб-сервер, обладающий высокой производительностью и усиленной безопасностью.

Все необходимые пакеты для его инсталляции расположены в репозиториях Ubuntu. Делается это следующими командами:

sudo apt update

Как установить и настроить LEMP-стек на Ubuntu 18.04

sudo apt install nginx

Как установить и настроить LEMP-стек на Ubuntu 18.04

Как только установка завершится, Nginx сразу будет запущен.

Рекомендуем проверить работу Nginx. Для этого установим Net-Tools с помощью команды:

sudo apt-get install net-tools

Как установить и настроить LEMP-стек на Ubuntu 18.04

Вводим команду для проверки соединения:

sudo netstat -nltup

Как установить и настроить LEMP-стек на Ubuntu 18.04

Будет показано несколько адресов – проверить их нужно все, чтобы определить свой.

Остается проверить, как работает веб-сервер, введя IP-адрес или имя домена в браузере. Если все правильно, откроется страница с приветствием Nginx.

Как установить и настроить LEMP-стек на Ubuntu 18.04

MySQL

MySQL — система управления БД. С ее помощью можно создавать базы данных, в которых хранится весь контент и другая информация сайта.

Для установки в терминале нужно ввести:

sudo apt install mysql-server-5.7

Как установить и настроить LEMP-стек на Ubuntu 18.04

По завершении установки MySQL следует настроить. Сначала нужно включить скрипт, позволяющий избавиться от рискованных настроек:

sudo mysql_secure_installation

Как установить и настроить LEMP-стек на Ubuntu 18.04

Появится предложение задать пароль для MySQL.

Далее будет предложено включить VALIDATE PASSWORD PLUGIN, плагин для контроля над сложностью паролей. Здесь следует понимать, что при включении этой опции слабые пароли будут отклонены системой и это повлечет дополнительные проблемы. Поэтому лучше отказаться от предложения и пользоваться своими надежными паролями.

Остальные настройки можно оставить по умолчанию – достаточно нажимать «y» (Yes), отвечая на следующие вопросы. Таким образом, будут удалены анонимные пользователи и тестовые БД, будет выключена удаленная авторизация root, а также пройдет обновление настроек MySQL.

PHP

PHP — язык программирования, с помощью которого создаются динамические веб-страницы.

В Nginx нет встроенной его поддержки, поэтому потребуется установить компонент php-fpm, чтобы сервер мог отправлять на обработку PHP-запросы.
Для начала понадобится установить пакет, обеспечивающего взаимодействие БД и PHP:

sudo apt install php-fpm php-mysql

Как установить и настроить LEMP-стек на Ubuntu 18.04

После установки можно переходить к защите PHP. Нужно открыть файл конфигурации php-fpm с правами администратора:

sudo nano /etc/php/7.2/fpm/php.ini

Как установить и настроить LEMP-стек на Ubuntu 18.04

В нем нужно найти строку cgi.fix_pathinfo, которая закомментирована точкой с запятой. Этот параметр нужно раскомментировать и дать ему значение 0: cgi.fix_pathinfo=0
Как установить и настроить LEMP-стек на Ubuntu 18.04
Нужно сохранить изменения, а затем перезагрузить PHP:

sudo systemctl restart php7.2-fpm

Как установить и настроить LEMP-стек на Ubuntu 18.04

Nginx и поддержка PHP

Так как все программы установлены, остается лишь настроить поддержку PHP в Nginx. Сделать это можно, изменив некоторые опции в файле по следующему пути:

sudo nano /etc/nginx/sites-available/default

Как установить и настроить LEMP-стек на Ubuntu 18.04

Ниже показан блок Nginx по умолчанию (без закомментированных строчек):

server {
   listen 80 default_server;
   listen [::]:80 default_server;

   root /var/www/html;
   index index.html index.htm index.nginx-debian.html;

   server_name _;

   location / {
       try_files $uri $uri/ =404;
   }
}

Привести этот блок к следующему виду:

server {
   listen 80 default_server;
   listen [::]:80 default_server;

   root /var/www/html;
   index index.php index.html index.htm index.nginx-debian.html;

   server_name your_server_domain_or_IP;

   location / {
       try_files $uri $uri/ =404;
   }

   location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/run/php/php7.2-fpm.sock;
   }

   location ~ /\.ht {
       deny all;
   }
}

На место your_server_domain_or_IP впишите доменное имя или IP адрес сервера.

Как установить и настроить LEMP-стек на Ubuntu 18.04

Далее нужно сохранить файл и проверить его на наличие ошибок:

sudo nginx -t

Как установить и настроить LEMP-стек на Ubuntu 18.04

Наконец, остается перезапустить Nginx:

sudo systemctl reload nginx

Как установить и настроить LEMP-стек на Ubuntu 18.04

Проверка работоспособности LEMP

Когда LEMP будет установлен, следует проверить, что веб-сервер без проблем работает с файлами PHP. Потребуется создать файл info.php в папке document root:

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

Добавить в него такие строки, сохранить изменения и закрыть:

<?php
phpinfo();
?>

Как установить и настроить LEMP-стек на Ubuntu 18.04

Если в браузере после его запуска откроется страница с информацией о сервере, значит все сделано правильно.

Как установить и настроить LEMP-стек на Ubuntu 18.04

Этот файл нужно обязательно стереть, чтобы другие лица не могли получить доступ к секретным данным:

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

Как установить и настроить LEMP-стек на Ubuntu 18.04