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

Поделиться ВКонтакте
+1

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

Начнем с 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 для сайта. Создаем файл:

В него пишем:

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

Все :)


Я советую хостинг Linode и Digital Ocean. Рефам помощь в установке и настройке — бесплатно!