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

В данном руководстве речь пойдет об установке стека технологий для создания веб-сайтов LEMP. Он состоит из операционной системы Linux (в нашем случае, Ubuntu), веб-сервера nginx (произносится, как EngineX), систему управления базами данных (СУБД) MySQL и языка программирования PHP.

Шаг #1: Установка nginx

Прежде всего, убедимся в том, что система полностью обновлена:

$ sudo apt-get update
$ sudo apt-get upgrade

Затем загрузим и установим веб-сервер nginx:

sudo apt-get install nginx

По завершению установки проверить работоспособность веб-сервера можно, вбив в адресную строку браузера его IP-адрес (например, http://188.227.18.58). После этого должна будет открыться страница с приветствием:

Welcome to nginx

Шаг #2: Установка MySQL

Теперь самое время установить систему управления базами данных MySQL. Мы будем устанавливать MySQL с поддержкой PHP. Для этого нужно ввести следующую команду:

sudo apt-get install mysql-server php5-mysql

В ходе процесса установки система попросит указать root-пароль для доступа к базе данных. После его ввода установка продолжится.

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

mysql -u root –p

В этом месте нужно будет ввести пароль, который был указан при установке, после чего откроется консоль управления базой данных.

Шаг #3: Обеспечение безопасности базы данных

Если MySQL будет использоваться для работы сайта реального бизнес-проекта, хорошей идеей будет повышения уровня безопасности. Существует специальный скрипт, позволяющий это сделать.

sudo mysql_secure_installation

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

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

Шаг #4: Установка PHP

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

sudo apt-get install php5-fpm

Шаг #5: Настройка nginx для работы с PHP и MySQL

Теперь все компоненты LEMP-стека установлены, однако чтобы все работало корректно, необходимо произвести настройку nginx для работы с PHP и MySQL.

Конфигурационный файл PHP5-FPM находится в директории /etc/php5/fpm/php.ini. Нужно открыть его в текстовом редакторе:

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

Здесь нужно раскомментировать (убрать символ ;) строку cgi.fix_pathinfo=1 и заменить в ней единицу на ноль:

cgi.fix_pathinfo=0

Затем файл нужно сохранить и перезапустить сервис php5-fpm:

sudo service php5-fpm restart

Конфигурационный файл nginx находится в директории /etc/nginx/nginx.conf, но его трогать не обязательно. Настройки сайта nginx расположены в файле /etc/nginx/sites-available/default. Его нужн открыть в текстовом редакторе (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;
}

Затем нужно сохранить изменения и выйти из файла. Перезапускаем веб-сервер:

sudo service nginx restart

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

Теперь нужно проверить, как все работает вместе. Нужно создать тестовый файл:

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

В нем следует написать следующий код:

<? phpinfo(); ?>

Сохраняем файл и закрываем его. Затем в адресной строке вбиваем адрес этого файла (например, http://188.227.18.58/phpinfo.php). Если на странице нет сообщений об ошибках, и она пуста, то все хорошо.

Затем нужно снова открыть файл phpinfo.php и заменить в нем код на следующий:

<?php phpinfo(); ?>

Теперь, если снова открыть этот файл в браузере, то отобразится информационная страница MySQL:

PHP

Если опция short php-tag отключена (Off), то ее нужно включить — это позволит использовать короткую запись тегов при написании кода (). Для этого нужно внести небольшие изменения в файл php.ini:

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

В нем нужно исправить соответствующую запись с Off на on, а затем перезапустить php5-fpm:

sudo service php5-fpm restart

На это установка и настройка LEMP-стека завершена. О настройке данного технологического стека на CentOS 6 можно прочитать здесь.


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