Вступление
LEMP - группа программ, которые используются в качестве серверного программного обеспечения. Это аббревиатура, составленная по первым буквам программ: Linux, nginx (произносится как Engine x), MySQL и PHP. Она похожа на LAMP, но в данном случае вместо Apache используется nginx.
В этом руководстве будет рассказано о том, как установить LEMP на сервер с Debian 9.
Требования
Для выполнения инструкций из этой статьи у вас должен быть сервер с установленной ОС Debian 9 и пользователем, который может выполнять команды sudo.
Шаг 1: установка nginx
nginx - это современный продуктивный веб-сервер, который нужен для отображения сайта пользователям.
Все ПО, которое будет использоваться, можно установить прямо из репозиториев Debian. То есть для выполнения установки можно использовать утилиту apt.
Сначала нужно обновить локальный индекс пакетов:
$ sudo apt update
А потом выполнить установку веб-сервера:
$ sudo apt install nginx
На Debian 9 nginx настроен таким образом, что он запускается и начинает работать сразу после установки.
Если у вас запущен фаервол ufw, то необходимо разрешить соединение с nginx. Здесь нужно использовать максимально ограниченный профиль из тех, которые пропускают нужный вам трафик. Т.к. протокол SSL на сервере еще не настроен, вам нужно просто разрешить трафик по 80 порту:
$ sudo ufw allow 'Nginx HTTP'
Проверьте изменения:
$ sudo ufw status
В выводе должен быть разрешен HTTP-трафик:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)
Теперь нужно убедиться в том, что сервер работает. Для этого введите в браузере публичный IP-адрес сервера либо доменное имя. Если доменного имени нет, и вы не знаете IP-адрес, то введите команду ниже для того, чтобы узнать его:
$ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Вы увидите несколько IP-адресов, попробуйте каждый из них в браузере:
http://IP-адрес_или_доменное_имя
В итоге вы должны увидеть стартовую страницу nginx.
Значит, nginx установлен корректно.
Шаг 2: установка MySQL
Теперь нужно установить MySQL - СУБД, которая будет использоваться для хранения и работы с данными сайта. Это можно легко сделать командой ниже:
$ sudo apt install mysql-server
После установки нужно выполнить настройку MySQL. Для этого нужно запустить специальный скрипт:
$ sudo mysql_secure_installation
Сначала у вас будет запрошен пароль для аккаунта суперпользователя MySQL. Т.к. пароль еще не установлен, просто нажмите Enter. Следующий вопрос - хотите ли вы установить этот пароль. Введите y, а затем укажите желаемый пароль.
На все последующие запросы скрипта можно вводить y и нажимать Enter. В результате будут удалены анонимные пользователи, тестовая база данных, запрещены удаленные соединения. Теперь у вас есть установленная и настроенная СУБД. Перейдем к PHP.
Шаг 3: установка PHP
PHP будет использоваться для работы с динамическим контентом.
Так как nginx, в отличие от некоторых других веб-серверов, не имеет встроенного менеджера процессов для PHP, придется устанавливать fmp (fastCGI process manager - менеджер процессов FastCGI). Именно ему nginx будет передавать PHP-запросы для последующей обработки.
Второй пакет, который нужно будет установить, - для работы PHP с MySQL.
$ sudo apt install php-fpm php-mysql
PHP-компоненты установлены, и теперь нужно перейти к настройке nginx.
Шаг 4: настройка nginx
nginx нужно настроить так, чтобы он использовал менеджер процессов PHP для динамического контента.
Для этого нужно создать конфигурационный файл и новую директорию для файлов PHP. В качестве названия можно выбрать доменное имя или хост.
Создайте новую директорию:
$ sudo mkdir /var/www/ваш_домен
Откройте новый конфигурационный файл в директории sites-available:
$ sudo nano /etc/nginx/sites-available/ваш_домен
Откроется пустой файл, куда нужно скопировать информацию ниже:
server { listen 80; listen [::]:80; root /var/www/ваш_домен; index index.php index.html index.htm; server_name ваш_домен; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; } }
Это базовая конфигурация, ее можно настроить по своему усмотрению.
Теперь активируйте ее, используя команду символьной ссылки:
$ sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/
Проверьте настройки на синтаксические ошибки:
$ sudo nginx -t
Если появилось сообщение об ошибках, обязательно проверьте файл еще раз.
Если все в порядке, то перезагрузите nginx для того, чтобы изменения вступили в силу:
$ sudo systemctl reload nginx
Шаг 5: создание файла PHP для тестирования
Заключительный этап - нужно проверить, что nginx корректно передает файлы .php для обработки менеджеру процессоров.
Для этого нужно создать тестовый файл PHP в корневой папке. Откройте новый файл с названием info.php в текстовом редакторе:
$ sudo nano /var/www/ваш_домен/info.php
Введите туда следующие строки:
<?php phpinfo(); ?>
После этого сохраните и закройте файл.
Теперь введите в адресной строке браузера доменное имя сервера либо IP-адрес плюс /info.php:
http://ваш_домен/info.php
Вам должна высветиться информация о вашем сервере:
Если вы страницу, которая так выглядит, значит, все работает корректно.
После этого файл можно удалить:
$ sudo rm /var/www/html/info.php
Теперь на вашем сервере с ОС Debian установлен и полностью готов к работе стек LEMP.
Комментарии