В статье рассмотрен процесс настройки LEMP-стека на VPS под управлением операционной системы Ubuntu 16.04.
Что такое LЕMP
LEMP - это аналог популярного стека LAMP, используемого для разработки и развертывания веб-приложений. Традиционно LAMP состоит из Linux, Apache, MySQL и PHP. Благодаря своей модульной природе компоненты легко могут быть заменены. В LEMP Apache заменяется легким, но мощным Nginx, который может обеспечить более предсказуемую производительность при высоких нагрузках.
Apache vs Nginx
Apache:
- Разрабатывается с 1995 года, к нынешнему моменту имеет много пользователей, существует большое количество модулей (в основном с открытым исходным кодом), написанных для расширения его функциональности;
- Процессы или поточно-ориентированный подход замедляют работу веб-сервера при большой нагрузке, необходимо создавать новые процессы и потреблять больше ОЗУ, а также создавать новые потоки, которые должны конкурировать за ресурсы ЦП и ОЗУ;
- Должен быть установлен предел для обеспечения того, чтобы ресурсы не перегружались, когда предел достигнут, дополнительные соединения будут отклонены.
Nginx:
- Веб-сервер с открытым исходным кодом, написанный для решения проблем производительности и масштабируемости, связанных с Apache;
- Механизм nginx, управляемый событиями, асинхронный и неблокирующий, не создает новые процессы для каждого веб-запроса;
Установка Nginx
Чтобы поставить Nginx для LEMP вам необходимо подключиться к VPS с ОС Ubuntu и исполнить следующие команды:
sudo apt-get update
sudo apt-get install nginx
Чтобы проверить установку сервера nginx, перейдите в любом браузере по следующей ссылке, указав IP-адрес вашего VDS:
http://<ip-адрес_сервера>/
Например:
http://5.101.77.24/
Примечание: если у вас не получается подключиться, проверьте настройки FireWall, веб-сервер Nginx по умолчанию работает на порту 80, чтобы добавить правило выполните следующую пару команд:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables-save
Как узнать IP-адрес сервера
Адрес сервера можно найти на вкладке «Состояние» страницы «Серверы» в панели управления.
Установка MySQL(MariaDB) на Ubuntu
MySQL — это система управления базами данных (СУБД), которая используется для организации и получения контента.
Сегодня в LEMP стеке MySQL заменяется на популярный аналог - MariaDB. MariaDB имеет те же возможности, что и MySQL, и при этом является полностью бесплатной.
Примечание: если вы предпочитаете использовать базу данных MySQL в Ubuntu или ваш проект работает именно с ней, вам нужно будет добавить необходимые репозитории и установить БД с помощью инструкции.
Установите пакеты из главного репозитория Ubuntu с помощью менеджера пакетов:
После успешной установки выполните настройки безопасности и удалите некоторые значения по умолчанию. Приведите в действие скрипт:
Здесь MariaDB попросит вас задать пароль супер-пользователя БД. Затем система попросит ответить на несколько вопросов (они служебные и на каждый из них без лишних проблем можно ответить Yes).
После этого конфигурирование базы данных завершено, и можно переходить к следующему шагу настройки LEMP стека — установке PHP.
Установка PHP на Ubuntu
Для установки компонента обработки программного кода PHP установите пакеты из главного репозитория с помощью менеджера пакетов:
В процессе установки потребуется 1 или 2 раза ответить ‘Yes’ на вопросы системы.
Модули PHP
Для повышения функциональности LEMP вы можете дополнительно поставить некоторые модули php. Посмотреть список доступных библиотек можно с помощью команды:
После этого система выдаст список, начало которого выглядит похожим образом:
Если вы решите установить какой-либо из модулей, то это можно сделать с помощью специальной команды:
Например:
Настройка Nginx для работы с PHP и MySQL
Для настройки связи между PHP и MySQL в LEMP стеке для nginx необходимо установить дополнительные модули и внести изменения в конфигурационный файл:
С помощью текстового редактора, например vi, откройте файл конфигурации на редактирование:
Раскомментируйте (уберите символ “;” в начале строки) следующую переменную и присвойте ей значение 0:
Сохраните изменения и выйдите из текстового редактора.
Перезапустите модуль:
Настройка Nginx
С помощью текстового редактора, например vi, откройте файл конфигурации веб-сервера nginx:
Добавьте значение index.php к параметру index в начало, чтобы в первую очередь искались файлы с расширением php:В качестве значения параметра server_name укажите доменное имя или ip-адрес сервера:
server_name домен_или_IP_адрес;
Например:
server_name 125.221.12.11
Раскомментируйте следующие строки, которые отвечают за обработку PHP-запросов в nginx:
В итоге, содержимое должно выглядеть следующим образом:
Чтобы изменения стали актуальны, нужно заново запустить веб-сервер nginx:
service nginx restart
Запуск
Чтобы удостовериться в том, что LEMP поставлен без ошибок, можно создать test-page на VPS.
Создаем файл с нужным расширением:
Внесите в него следующую строку и сохраните:
Затем сохранить и выйти.
Затем перейдите в браузере по следующей ссылке, указав IP-адрес вашего сервера: http://<IP-адрес_сервера>/info.php
Например: http://5.101.77.24/info.php
Ожидаемый результат: