Установка LEMP в Ubuntu 18.10 включает в себя полноценный web сервер.
LEMP расшифровывается как Linux , Nginx(произносится как «E ngine-X»), Mysql в лице демона MariaDB и конечно же PHP.
Так что же такое Nginx? Это легковесный, не такой требовательный к ресурсам, как Apache, web сервер. Nginx позиционируется производителем как простой, быстрый и надёжный сервер, не перегруженный функциями.
Для тех кому интересна установка LAMP на Ubuntu 18.10, рекомендуем нашу статью LAMP Ubuntu 18.10
После, того как мы разобрались что же такое Nginx, можно приступать к установке. Все пакеты будут установлены из официального репозитория Ubuntu 18.10.
Установка web-сервера Nginx.
Первым делом обновляем список пакетов:
1 |
sudo apt update |
Затем устанавливаем Nginx:
1 |
sudo apt install nginx |
Если вы используете файрвол ufw, вам потребуется разрешить соединения для Nginx. В процессе установки Nginx регистрирует себя в ufw, поэтому процедура настройки достаточно проста.
Разрешаем трафик на 80 порт:
1 |
sudo ufw allow 'Nginx HTTP' |
Проверить изменения можно командой:
1 |
sudo ufw status |
Результатом выполнения будет вывод приблизительно такого вида:
1 2 3 4 5 6 7 8 |
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6) |
После того, как мы открыли доступ к нашему Nginx, можно перейти в браузере на тестовую страницу. Используя для итой цели доменное имя или ip адрес.
1 |
http://доменное_имя_или_IP_адрес |
Установка Mysql
после успешной установки web сервера, приступаем к установке Mysql. Данный демон легко установить командой:
1 |
sudo apt-get install mysql-server |
По завершении установки, запустим дополнительную команду, для первоначальной установки:
1 |
sudo mysql_secure_installation |
Первое, что спросит скрипт, это включение плагина валидации паролей. При включении данной опции, все пароли не удовлетворяющие mysql будут отвергаться с сообщениями об ошибке. Это может причинить неудобства, если вы используете слабые пароли совместно с ПО для конфигурации баз данных, например таких как phpMyAdmin. Включать или нет, выбор за вами.
Если вы включили валидацию паролей, вам будет предложено установить уровень надёжности паролей при валидации. Имейте в виду, что при выборе значения 2 (самый строгий уровень валидации), вы будете получать ошибки при попытке задать пароль без цифр, букв в верхнем и нижнем регистре, а также без специальных символов, а также при попытке использовать пароль, основанный на распространённых словах, которые уязвимы для подбора паролей по словарю.
Далее потребуется, придумать пароль администратора и подтвердить его.
Затем, удалить анонимных пользователей. Вводим Y.
После будет задан вопрос о запрете удаленного доступа пользователя root. Запрещаем его вводом Y.
Потом удаляем тестовую базу данных, так же вводим Y.
И наконец перезагружаем привилегии.
На этом установка сервиса MySQL завершена.
Установка PHP
На данном этапе у нас имеется рабочий web сервер, на базе Nginx, а так же сервер баз данных MySQL. Остается установить что-то, для генерации динамического контента. Для этого мы будем использовать PHP.
Поскольку Nginx не имеет встроенной поддержки PHP, как некоторые другие web серверы, потребуется установить php-fpm. А так же настроить Nginx для передачи php запросов, данному программному обеспечению для обработки.
Перейдем к установке, а так же установим дополнительный пакет, позволяющий взаимодействовать PHP с MySQL.
1 |
sudo apt-get install php-fpm php-mysql |
После установки откроем конфигурационный файл php-fpm, для редактирования:
1 |
sudo nano /etc/php/7.2/fpm/php.ini |
Далее найдем в этом файле параметр cgi.fix_pathinfo. Он будет закомментирован и будет имень параметр 1. Раскомментируем и изменим параметр на 0. Сохраняем и перезапускаем обработчик PHP.
1 |
sudo systemctl restart php7.0-fpm |
Настройка Nginx для работы с PHP
По инструкциям выше мы установили все необходимы компоненты. Осталось только настроить Nginx для работы с обработчиком php-fpm и отображение динамического контента.
Сделаем это на уровне серверных блоков. Откроем серверный блок по умолчанию командой:
Внесем несколько изменений в него.
Первым делом необходимо добавить index.php первым значением директивы index.Таким образом сервер в первую очередь будет искать index.php.
Директива server_name служит для указания доменного имени или публичного ip адреса сервера.
Что-бы PHP работал корректно, раскомментируем часть файла, которая отвечает за обработку PHP. Данный блок на картинке ниже.
Так же, раскомментируем часть кода, отвечающую за работу с файлами .htaccess. Nginx данные файлы не обрабатывает.
После внесения правок в конфиг, сохраняем и закрываем.
Затем проверяем его на наличие ошибок:
1 |
sudo nginx -t |
Если в процессе редактирования были допущены ошибки, то перед применение настроек, следует их устранить. А затем применяем перезапуская Nginx:
1 |
sudo systemctl reload nginx |
На этом этапе наш сервер LEMP полностью установлен и остается только проверить его работоспособность.
Создаем файл phpinfo.php:
1 |
sudo nano /var/www/html/phpinfo.php |
И записываем в него следующее содержимое:
1 |
<?php phpinfo();?> |
Сохраняем и закрываем. Открываем браузер и переходим:
1 |
http://домен_или_IP_адрес_сервера/phpinfo.php |
Если вы видите страницу, как показано выше, вы успешно произвели настройку обработчика PHP с помощью web сервера Nginx.
После проверки, следует удалить это файл, из соображений безопасности:
1 |
sudo rm /var/www/html/phpinfo.php |
По завершении всех шагов установки и настройки, мы получили настроенный сервер со стеком LEMP на сервере под управление Ubuntu 18.10
1 комментарий