Настройка Nginx + PHP-FPM. Для чайников просто любо.

Правильный хостинг своими руками.

Для следующей статьи нам понадобится связка NGINX + PHP5-FPM. Установим и настроим.

nginx[1]

Начнем с python-software-properties для удобного добавления репозиториев. Выполним в консоли сервера команды:

 

Теперь добавим репозиторий NGINX:

 

Далее, устанавливаем сам NGINX, PHP5-FPM и сопутствующий софт:

Устанавливаемые пакеты можно было бы и перечислить в строку, однако виртуальная машина в Digital Ocean в этом случае принудительно приводит к аборту. Выглядит это вот так:

 

Поэтому выполняйте команды одну за одной, последовательно. В процессе установки спросит пароль для MySQL, придумайте пароль посложнее и запишите его, впоследствии пригодится 🙂 Наш сервер будет исполнять PHP посредством PHP5-FPM. Никакой Apache нам не тарахтел, по двум причинам:

  1. NGINX потребляет меньше памяти, чем Apache;
  2. Каждый сайт будет «запускаться» от своего юзера.

Для быстрых правок на сервере я советую связку PuTTY + MC. Для более вдумчивой и комфортной работы — WinSCP + Sublime Text 3. Все это лезет на сервер посредством SSH/SFTP, поэтому стандартный FTP нам также не тарахтел 🙂

Создадим группу SFTP (выполняем команду в консоли):

 

Теперь запускаем MC, находим файл:

 

В конец файла добавляем:

 

Комментируем там же строку:

 

Теперь для нашего будущего сайта нужно создать домашнюю директорию, директорию для временных файлов, юзера, добавить его в группу SFTP и назначить домашнюю директорию. Выполняем команды:

 

Далее надо настроить PHP и NGINX. Открываем файл:

 

Втыкаем в него это:

 

Теперь открываем файл:

 

Можно сделать резервную копию старого, если хотите. В новый файл пишем:

 

Открываем файл:

 

Комментируем строку:

 

Настало время разобраться с виртуальными хостами. NGINX подгружает сайты из директории /etc/nginx/sites-enabled/, а рядом с ней есть директория /etc/nginx/sites-available/. В первой директории находятся симлинки на конфиг файлы сайтов из второй директории. Это очень удобно, для удаления/отключения виртуального хоста надо просто удалить симлинк и перезапустить NGINX. Стандартный конфиг файл для виртуального сервера выглядит так:

 

В этих настройках сразу активированы Frienfly URLs, отдача статики и отработка PHP посредством PHP5-FPM (для него обозначается backend, 1-я строка конфига). Следующий можно создавать, просто скопировав этот конфиг и поменяв название одного сайта, на название другого. Далее, создаем симлинк

 

Далее, надо создать процесс PHP5-FPM для сайта. Создаем файл:

 

В него пишем:

 

Перезапускаем сервисы:

Все 🙂

Leave a Reply