28.07.2020

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

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

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

Подготовим серверную платформу для дальнейших работ — установим Nginx. Подключаемся к оборудованию по SSH и устанавливаем его стандартными средствами операционной системы. Дистрибутив доступен в официальных репозиториях.

Откроем стартовую страницу Nginx в обозревателе: пропишем IP в адресной строке программы. Должно появиться следующее изображение:

Скриншот №1. Успешная инсталляция.

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

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

iptables-save

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

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

1. Установим СУБД. В LAMP используют MySQl, а в LEMP — MariaDB. Оба продукта идентичны, за исключением способа распространения: MariaDB поставляется бесплатно, а у MySQL есть ограничения. Используем штатные средства установки ПО:

sudo apt-get install mariadb-server mariadb-client

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

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

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

sudo systemctl status mariadb

Результат показан на скриншоте:

Скриншот №2. Проверка статуса.

2. Повышаем уровень безопасность пакета:

sudo mysql_secure_installation

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

3. Следующий шаг — установка PHP. Для установки используем утилиту apt-get. Список пакетов, которые требуется установить:

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

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

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

apt-cache search php7

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

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

sudo apt-get install php-fpm php-mysql

По окончании открываем конфигурационный файл PHP через встроенную утилиту vi. Находим строку cgi.fix, и присваиваем значение ноль. Красным показан путь к php.ini:

Скриншот №4. Внесение изменений.

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

Выходим из утилиты, сохранив изменения. Чтобы применить новую конфигурацию, перезапустим службу php7.2-fpm. Процесс займет меньше минуты.

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

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

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

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

Скриншот №5. Добавить строку.

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

server_name XXX

где XXX — произвольное наименование серверной части. В нашем примере используем имя LEMP.

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

Скриншот №6. Итоговая конфигурация.

Сохраним изменения и перезагрузим сервис штатными средствами ОС.

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

Проверка

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

vi /var/www/html/info.php

Добавим информацию:

<?php phpinfo();?>

Закрываем редактор с сохранением. Открываем браузер, вводим IP-адрес серверной платформы с ключом info:

http://xxx.xxx.xxx.xxx/info.php, где xxx.xxx.xxx.xxx – адрес.

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

Скриншот №7. LEMP-сервер установлен.