Установка linux nginx mysql php

Как установить nginx, MySQL, PHP (LEMP) в Ubuntu

Сергей Мочалов

Как установить nginx, MySQL, PHP (LEMP) в Ubuntu

Данное руководство наиболее полно отражает процесс настройки LEMP сервера на базе хостинга от DigitalOcean, счастливым клиентом которого я недавно стал и вам советую.

Вводная

LEMP — аббревиатура, обозначающая комплекс программ для развертывания полного серверного окружения. Название формируется из входящих компонентов:

  • Linux — операционная система Linux;
  • Nginx(читается EnginX) — веб-сервер;
  • MariaDB / MySQL — СУБД;
  • PHP — язык программирования, используемый для создания веб-приложений (помимо PHP могут подразумеваться другие языки, такие как Perl и Python).

Данная связка серверного ПО пока мало распространена у большинства традиционных хостингов, но с каждым днем становится все более популярной.

Итак, предполагается что в качестве Linux-дистрибутива у нас установлен Ubuntu 14.04, приступаем к работе:

Шаг первый — установка веб-сервера Nginx

Для установки всего комплекса ПО мы будем использовать репозитории самого Ubuntu и стандартный менеджер пакетов apt

Откроем консоль в Ubuntu и установим Nginx, предварительно обновив источники пакетов:

sudo apt-get update sudo apt-get install nginx 

Теперь сервер Nginx установлен.

Проверить его работу, можно открыв браузер и перейдя на IP адрес того компьютера на котором устанавливали Nginx.

Если это ваш локальный компьютер то достаточно набрать http://localhost

Вы должны увидеть стартовую страницу Nginx:

Страница приветствия NGINX

Старт и остановка сервера осуществляется командами:

sudo service nginx start sudo service nginx stop 

Так как у меня первоначально стоял Apache2, пришлось сначала остановить его и затем запустить Nginx

sudo service apache2 stop sudo service nginx start 

Шаг второй — устанавливаем базу данных MySQL

Теперь, когда у нас есть веб-сервер, нам необходимо установить MySQL — базу данных, где будет храниться информация для нашего сайта.

Читайте также:  Balena etcher linux deb

Сделать это достаточно просто, открываем консоль и вбиваем:

sudo apt-get install mysql-server 

В процессе установки вам будет предложено ввести пароль администратора MySQL, который вам стоит запомнить или записать.

Все, MySQL установлен, но еще не настроен до конца. Во-первых, необходимо создать первичную структуру для хранения данных самой MySQL. Мы можем это сделать командой:

Далее нам необходимо запустить сценарий безопасности, который изменит некоторые настройки идущие по умолчанию:

sudo mysql_secure_installation 

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

Далее, вам будет предложено изменить его. Если в этом нет необходимости, введите «N» и нажмите «ENTER». После этого вам будет предложено удалить некоторых тестовых пользователей и базы данных. Вы должны просто нажимать «ENTER» при появлении вопросов, чтобы удалить опасные настройки по умолчанию.

После того, как сценарий завершиться, MySQL готов к использованию.

Шаг третий — установка PHP

После установки сервера Nginx и MySQL нам необходимо связующее звено — серверный язык/ который будет отрабатывать динамические запросы. Поскольку Nginx не содержит встроенной обработки PHP как и некоторые другие веб-серверы, нам нужно установить php5-fpm (Менеджер процессов FastCGI). Благодаря ему Nginx сможет обрабатывать PHP запросы.

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

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

sudo apt-get install php5-fpm php5-mysql 

Повышаем безопасность PHP-FPM

Для повышения безопасности работы с PHP нам надо произвести донастройку. Отроем на редактирование файл:

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

после чего, найдем строчку содержащую «cgi.fix_pathinfo», которая по-умолчанию выглядит так:

раскомментируем ее и изменим значение, должно получиться так:

Сохраните измененный файл. Это призвано устранить опасность неправильно трактования (и возникающей уязвимости) запросов вида /image.gif/foo.php

Читайте также:  Linux mint vnc client

Шаг четвертый — настройка работы NGINX с PHP

Теперь у нас есть все составляющие сервера. Нам необходимо лишь связать NGINX и PHP для того чтоб он мог отрабатывать динамический контент. Сделаем настройку так называемых серверных блоков(то же самое что виртуальные хосты у Apache)

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

Без комментов этот блок смотрится примерно так:

В него нужно внести небольшие изменения.

Во-первых, нужно внести index.php как первое значение директивы index, чтобы индексные файлы PHP обслуживались при запросе каталога.

На месте директивы server_name, надо указать доменное имя или общедоступный IP сервера.

Конфигурационный файл включает в себя несколько закомментированных строк, которые определяют процедуры обработки ошибок. Их нужно раскомментировать.

Также нужно будет раскомментировать часть другого раздела и добавить директиву try_files, чтобы убедиться, что Nginx не передает подозрительные запросы на процессор PHP.

Должно получиться как то так:

server < listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; server_name server_domain_name_or_IP; location / < try_files $uri $uri/ =404; >error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html < root /usr/share/nginx/html; >location ~ .php$ < try_files $uri =404; fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; >> 

Вот и все — мы настроили сервер на основе NGINX для нашей Ubuntu 14.04.

Теперь перезагрузите его, чтобы все наши изменения вступили в силу:

sudo service nginx restart 

Сергей Мочалов

Сергей Мочалов

Веб-разработчик. Создаю и поддерживаю сайты для клиентов с 2009 года

Источник

Оцените статью
Adblock
detector