Установка LEMP стека (Linux, Nginx, MySQL, PHP) на Ubuntu 16.04

О том, как установить комплект LAMP на Ubuntu Server, написано десятки статей. Но гораздо меньше известно о LEMP-сервере. Отличие в том, что первый вариант использует Apache, а второй — Nginx. Расскажем подробнее про инсталляцию и первичную настройку. В качестве примера используется Ubuntu 16.04.

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

Подготовим сервер для инсталляции. Для начала установим Nginx на сервер. Подключаемся к оборудованию по SSH и прописываем:

sudo apt-get update

sudo apt-get install nginx

Для проверки зайдем через браузер на сервер по IP-адресу. На мониторе появится надпись.

Если страница не открывается, то добавляем правило в настройки межсетевого экрана. Вводим команды:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

iptables-save

Откроется порт 80, по которому работает Nginx в «белом» списке Файервола.

Предварительная подготовка завершена, переходим к конфигурированию.

1. Инсталлируем СУБД. В LAMP используют MySQl, в LEMP предлагает MariaDB. Разница в том, что «Мария» поставляется бесплатно, в то время как у MySQL есть ограничения.

sudo apt-get install mariadb-server mariadb-client

Во время установки пакет потребуется задать пароль для администратора. Придумываем самостоятельно.

Важно! Рекомендуем использовать следующие правила – минимум 9 символов, заглавные буквы, цифры и спецсимволы.

По окончанию проверяем работоспособность командой:

sudo systemctl status mariadb

2. Теперь изменим настройки безопасности пакета на повышенные.

sudo mysql_secure_installation

Для подтверждения операций потребуется ввести пароль администратора, который задавался во время инсталляции MariaDB.

Команда отключает гостевой вход в БД, удаленный доступ для суперпользователя, ликвидирует временные таблицы и выполнит перезагрузку прав.

3. Следующий шаг — PHP. В терминале набираем команду:

sudo apt-get install php7.2-mysql php7.2-curl php7.2-json php7.2-cgi php7.2 libapache2-mod-php7.2 php7.2-xml

Инсталляция займет минут 10. Дополнительных действия почти не требуется, следуем подсказкам мастера.

4. После установки можно подключить дополнительные модули на PHP. Список доступен по команде:

apt-cache search php7

На мониторе появится перечень команд с расшифровкой. Выбираем требуемый и инсталлируем стандартными средствами Ubuntu:

sudo apt-get install xxx, где xxx – имя модуля.

Инсталляция пакетов завершена. Переходим к настройкам.

5. Подключим установленные приложения между собой. Набираем:

sudo apt-get install php-fpm php-mysql

По окончании открываем конфигурационный файл PHP через встроенный текстовый редактор vi.

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

Находим строку, присваиваем значение ноль.

cgi.fix_pathinfo = 0

Важно! Чтобы строка была активной, удаляем точку с запятой в начале строки.

Выходим из утилиты, сохранив изменения. Чтобы применить новую конфигурацию, перезапустим сервис.

sudo systemctl restart php7.2-fpm

Процесс займет меньше минуты.

6. Скорректируем конфигурационный файл Nginx.

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

Находим строку с именем Index и вносим дополнительные строки:

index.php index.html index.htm index.nginx-debian.html;

Если требуется поменять имя сервера, то используем команду:

server_name XXX, где XXX – произвольное имя сервера. В нашем примере используем наименование LEMP.

Добавляем возможность обрабатывать запросы PHP: удаляем символ «#» перед строками. На изображении отмечено цифрами «3» и «4».

Сохраним изменения и перезагрузим Nginx.

service nginx restart

На этом настройка закончена. Проверим.

Проверка

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

vi /var/www/html/info.php

Внесем в него информационную строку.

<?php phpinfo();?>

Сохраняем изменения, закрываем программу Vi.

Открываем браузер, вводим IP-адрес сервера с кодом info.

http://xxx.xxx.xxx.xxx/info.php, где xxx.xxx.xxx.xxx – IP-адрес нашего сервера.

Если конфигурирование прошло успешно, то на странице отобразится следующее.