Как установить LEMP-стек (Linux, nginx, MySQL, PHP) на Ubuntu 14.04 LTS

Что такое LЕMP

LEMP - это аналог популярного стека LAMP, используемого для разработки и развертывания веб-приложений. Традиционно LAMP состоит из Linux, Apache, MySQL и PHP. Благодаря своей модульной природе компоненты легко могут быть заменены. В LEMP Apache заменяется легким, но мощным Nginx, который может обеспечить более предсказуемую производительность при высоких нагрузках.

Apache vs Nginx

Apache:

  • Разрабатывается с 1995 года, к нынешнему моменту имеет много пользователей, существует большое количество модулей (в основном с открытым исходным кодом), написанных для расширения его функциональности;
  • Процессы или поточно-ориентированный подход замедляют работу веб-сервера при большой нагрузке, необходимо создавать новые процессы и потреблять больше ОЗУ, а также создавать новые потоки, которые должны конкурировать за ресурсы ЦП и ОЗУ;
  • Должен быть установлен предел для обеспечения того, чтобы ресурсы не перегружались, когда предел достигнут, дополнительные соединения будут отклонены.

Nginx:

  • Веб-сервер с открытым исходным кодом, написанный для решения проблем производительности и масштабируемости, связанных с Apache;
  • Механизм, управляемый событиями, асинхронный и неблокирующий, не создает новые процессы для каждого веб-запроса;

Установка nginx

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

sudo apt-get update
sudo apt-get upgrade

Далее установите пакет из главного репозитория

sudo apt-get install nginx

Настройка правил Firewall

С помощью команды iptables необходимо открыть HTTP порт:

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

Проверка установки nginx

В адресной строке браузера перейдите по адресу, указав ваш домен или IP-адрес:

http://<domain_or_IP>
Например: http://121.22.123.59

После этого должна будет открыться страница с приветствием:

Welcome to nginx

Установка MySQL

MySQL — это система управления базами данных (СУБД), которая используется для организации и получения контента. Необходимо установить MySQL с поддержкой PHP. Установите пакеты из главного репозитория Ubuntu с помощью менеджера пакетов:

sudo apt-get install mysql-server php5-mysql

Здесь установщик попросит вас задать пароль супер-пользователя БД.

Для подключения к системе управления базами данных MySQL в приглашении командной строки введите следующую команду и затем пароль-суперпользователя:

mysql -u root –p

Для повышения уровня безопасности MySQL существует специальный скрипт, который мы рекомендуем использовать:

sudo mysql_secure_installation

Далее введите пароль и ответьте на несколько вопросов:

  • Удаление анонимного пользователя (remove anonymous user) — рекомендуется удалить его, чтобы снизить риск несанкционированного подключения к базе данных;
  • Запрещение удаленного root-логина — нужно запретить удаленное подключение с административными правами;
  • Иногда при установке MySQL создается тестовая база данных, если она не нужна, ее тоже можно удалить;
  • После этого нужно перезагрузить таблицу привилегий, чтобы все изменения вступили в силу.

После этого конфигурирование базы данных завершено, и можно переходить к следующему шагу настройки LEMP стека — установке PHP.

Установка PHP

Для установки компонента обработки программного кода PHP установите пакеты из главного репозитория с помощью менеджера пакетов:

sudo apt-get install php5-fpm

Настройка nginx для работы с PHP и MySQL

Для настройки связи между PHP и MySQL в LEMP стеке необходимо установить дополнительные модули и внести изменения в конфигурационный файл. С помощью текстового редактора nano откройте конфигурационный файл PHP5-FPM:

sudo nano /etc/php5/fpm/php.ini

Раскомментируйте (уберите символ “;” в начале строки) следующую переменную и присвойте ей значение 0:

cgi.fix_pathinfo = 0

Сохраните внесенные изменения.

Перезапустить сервис php5-fpm:

sudo service php5-fpm restart

С помощью текстового редактора откройте файл настройка сайта nginx:

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

Раскомментируйте (уберите символ #) следующие строки:

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}

Сохраните внесенные изменения.

Перезапускаем веб-сервер nginx:

sudo service nginx restart

Важно: на Ubuntu 14.04 нельзя использовать fastcgi_pass 127.0.0.1:9000, так что эта строчка должна оставаться закомментированной, иначе возникнет ошибка.

Проверка настроек

Чтобы удостовериться в том, что LEMP и веб-сервер nginx поставлен без ошибок, можно создать тестовую страницу на VPS.

Создаем файл с нужным расширением:

sudo nano /usr/share/nginx/html/phpinfo.php

Внесите следующую строку и сохраните изменения:

<?php phpinfo(); ?>

Затем перейдите в браузере по следующей ссылке, указав IP-адрес вашего сервера:

http://<IP-адрес_сервера>/phpinfo.php Например: http://5.101.77.24/phpinfo.php

Ожидаемый результат:


PHP

Примечание: для использования короткой записи тегов необходимо включить опцию short php-tag. Откройте файл php.ini:

sudo vi /etc/php5/fpm/php.ini

Измените значение с Off на on, и перезапустите php5-fpm:

sudo service php5-fpm restart

На этом установка и настройка LEMP-стека завершена.



Средняя оценка: 5,0, всего оценок: 5