Установка LEMP

LEMP — набор программного обеспечения для работы сайтов и веб-приложений. В отличие от LAMP (Linux, Apache, MySQL/MariaDB, PHP), в LEMP в качестве веб-сервера используется не Apache, а Nginx (читается как Engine-X):

  • Linux — операционная система; 
  • Engine-X — веб-сервер nginx; 
  • MySQL / MariaDB — сервер баз данных;
  • PHP — интерпретатор применяемого в разработке web-приложений языка PHP

Установка веб-сервера Nginx

Nginx позволяет обеспечить стабильно высокую производительность сайтов даже при очень высоких нагрузках. Он популярен для обеспечения работы высоконагруженных веб-сервисов — используется Yandex, Mail.ru, VKontakte, Habr и др.

Важно помнить, что многие популярные CMS (например, WordPress) заточены под работу с Apache, поэтому некоторые их функции не будут работать под Nginx-ом без специфических настроек.

Установка выполняется в один шаг:

Ubuntu и Debian:

CentOS:

После установки проверим, что веб-сервер запустился. 

На Ubuntu и Debian службы после установки запускаются и добавляются в автозапуск автоматически, на Centos это нужно сделать вручную. Запустить веб-сервер и настроить его автоматический старт после загрузки системы можно следующим образом:

Дополнительно можно настроить веб-сервер на автоматический перезапуск в случае аварийного отключения службы. Для этого добавим отдельную директорию и создадим в ней наш новый конфигурационный файл:

Откроем файл в любом консольном текстовом редакторе:

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

Сохраним файл и перезагрузим менеджер служб:

На CentOS после установки нужно отредактировать настройки встроенного фаервола:

Проверить, что настройки успешно применились, можно с помощью команды: 

В блоке Services в списке должны отображаться http и https.

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

Для Debian и Ubuntu:

Для CentOS:

Установка сервера баз данных

MariaDB — сервер баз данных с открытым исходным кодом. Процесс установки состоит из двух шагов: установки и запуска автонастройки безопасности.

Установка:

Ubuntu и Debian:

CentOS:

Чтобы проверить, что сервер баз данных запустился и работает без ошибок, выполните команду: 

Если сервис не запустился автоматически (статус dead), активируйте и добавьте службу в автозагрузку вручную:

После установки можно проверить версию установленного сервера баз данных:

Ubuntu и Debian:

CentOS:

Для редактирования параметров безопасности запустите встроенный инструмент настройки:

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

На первом шаге скрипт предложит ввести текущий пароль root от сервера баз данных. По умолчанию после установки он не задан, достаточно нажать Enter. После этого будет предложено подтвердить или отклонить дополнительные настройки безопасности — для согласия введите y (yes), для отказа — любую другую клавишу и нажмите Enter. Рекомендуется подтвердить все параметры, так как они воплощают базовые рекомендации по безопасности сервера БД.

  • Новый пароль root для сервера баз данных (по умолчанию отсутствует) — потребуется ввести и подтвердить новый пароль;
  • Удаление анонимных пользователей (один присутствует по умолчанию для тестового режима);
  • Отключение удалённого доступа для пользователя root;
  • Удаление тестовой базы данных и доступов к ней;
  • Перезагрузка таблиц для применения новых параметров.

Установка PHP и дополнительных расширений

Проверить доступную для установки версию PHP можно командой:

Ubuntu и Debian:

CentOS:

Знать её нужно для корректной установки нужных компонентов на следующем шаге (для Ubuntu и Debian). В примере версия PHP — 7.4. Вам при установке нужно заменить её в команде на ту, которая доступна для вашей операционной системы.

Если версия вам подходит, после этого можно перейти к установке:

Ubuntu и Debian:

CentOS:

Дополнительные расширения PHP, доступные для установки, можно посмотреть командой:

  • Ubuntu и Debian:Для конкретной версии:

Версии по умолчанию:

CentOS:

Установить выбранный модуль можно командой:

Ubuntu и Debian:

CentOS:

После установки PHP запускаем менеджер процессов php-fpm и добавляем его в автозагрузку:

Ubuntu и Debian:

CentOS:

Проверим установленную версию PHP: 

После установки PHP нужно отредактировать настройки php-fpm по умолчанию, предназначенные для веб-сервера Apache:

Ubuntu и Debian:

CentOS:

В файле ищем блок кода Unix user/group of processes и меняем apache на www-data для Debian и Ubuntu и nginx для CentOS.

Остался последний штрих. Открываем для редактирования конфигурационный файл PHP:

Ubuntu и Debian:

CentOS:

В файле ищем раздел Paths and Directories (он почти в самом конце файла), внутри находим параметр cgi.fix_pathinfo. Нужно раскомментировать его (удалить «;» в начале строки) и изменить значение с «1» на «0».

После этого сохраняем файл и перезапускаем веб-сервер, чтобы новые настройки применились:

Ubuntu и Debian:

CentOS:

Настройка базового конфигурационного файла для сайта

Чтобы веб-сервер мог корректно обрабатывать запросы к сайтам, осталось добавить базовый конфигурационный файл вместо установленного по умолчанию. Для этого:

Удаляем конфигурационный файл default, использующийся по умолчанию, и создаём его замену, default.conf:

Ubuntu и Debian:

CentOS:

Откроем новый файл в консольном текстовом редакторе и добавим туда содержимое:

Ubuntu и Debian:

CentOS:

Скопируйте в файл следующий блок настроек:

Ubuntu и Debian:

CentOS:

Осталось проверить, что в конфигурационном файле отсутствуют ошибки, и перезапустить nginx для применения настроек:

Проверка параметров PHP через phpinfo()

Чтобы вывести подробный список параметров PHP, можно использовать функцию phpinfo(). Это может пригодиться в том числе при отладке настроек сайта после размещения на сервере.

Для начала перейдите в корневую директорию вашего сайта. Если сайта ещё нет, по умолчанию это каталог /usr/share/nginx/html. Создайте файл с именем info.php и откройте его в любом консольном текстовом редакторе:

В файл вставьте следующую конструкцию:

Теперь при переходе по ссылке типа http://IP-адрес-сервера/info.php вы увидите полный список параметров PHP на вашем сервере:

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

На этом все.