
Это руководство открывает серию материалов по установке известных систем управления содержимым (CMS) на веб-сервер nginx. В отдельную статью необходимо выделить общую часть, которая будет одинаковой для всех CMS, написанных на PHP (грубо говоря мы сделаем тот же LAMP, только вместо громоздкого и неповоротливого веб-сервера Apache у нас будет nginx). Задача данного руководства – установка веб-сервера nginx, системы управления базами данных MySQL и менеджера процессов FastCGI (FPM), а также их настройка.
* Конфигурация и установка отдельных CMS будут описаны в дополнительных материалах.
Установка и запуск nginx, MySQL, PHP-FPM (Linux, nginx, MySQL, PHP - LNMP)
Все приведенные ниже инструкции сначала были выполнены.
Небольшие пояснения:
- символ # (решётка) - означает выполнение команды от root (суперпользователя)
- cat /path/to/some.file - означает что ниже приведено полное содержимое файла some.file, расположенного в каталоге /path/to
- nano /path/to/some.file - означает что надо отредактировать часть файла как указанно
- в процессе установки MySQL будет произведена предварительная настройка и задан пароль root.
Gentoo:
1 2 | |
Вначале необходимо произвести начальную настройку MySQL:
1
| |
Debian:
1 2 3 4 | |
1
| |
CentOS. Тут надо заметить, что в своих репозиториях CentOS нет nginx, поэтому добавим репозиторий:
1 2 3 4 5 6 7 | |
1
| |
Настроить MySQL:
1 2 | |
Управление сервисами MySQL, nginx, PHP-FPM и добавление их в автозагрузку:
Gentoo:
1 2 3 4 5 6 7 | |
Debian:
1 2 3 4 5 6 7 | |
CentOS:
1 2 3 4 5 6 7 | |
Сразу после установки nginx понимает только статические файлы, не исполняемые на сервере, и, если установка прошла успешно, запустив его можно проверить отображение «Welcome to nginx!» на localhost (127.0.0.1):

Впрочем может быть и так:

Это означает, что сервер не настроен.
Настройки по умолчанию подходят для большинства случаев и не требуют больших изменений на данном этапе. В различных дистрибутивах Linux настройки и месторасположение конфигурационных файлов могут различаться (также это замечание относится к использованию пакетов, установленных из репозиториев, отличных от основного), здесь всё зависит от поддерживающего пакет мейнтейнера.
Неизменным остаётся расположение файла настроек /etc/nginx/nginx.conf. Конфигурации сайтов, дополнительные параметры добавляются в него через опцию include.
В Debian например сейчас конфигурации сайтов добавляются в стиле Apache (добавление конфигурации созданием симлинков):
1 2 3 4 | |
В официальных репозиториях этого нововведения нет и конфигурации сайтов добавляются следующим образов:
1 2 3 | |
То есть любой файл из каталога /etc/nginx/conf.d/ с расширением .conf будет добавлен.
Если каталог /etc/nginx/conf.d - отсутствует, создайте его:
1
| |
В include как правило присутствует конфигурация сайта по умолчанию, который как раз и выводит надпись «Welcome to nginx!» при обращении к localhost (127.0.0.1):
- Debian/Ubuntu - /etc/nginx/sites-enabled/default
- Gentoo/CentOS - /etc/nginx/conf.d/default
- Больше этот файл не нужен - удалите его.
Права на каталог сайтов
Создаем (если не существует) каталог для сайтов и устанавливаем права:
1 2 3 | |
Владельцем каталога сайтов должен быть пользователь, от имени которого запущен и работает вэб-сервер. В Debian и Ubuntu это www‑data, в Gentoo, CentOS - пользователь nginx. В конфигурации за это отвечает директива user (nginx.conf):
1 2 3 | |
При переносе сайта, а также чтобы был доступ к содержимому сайта у пользователей, входящих в группу www‑data необходимы корректные права на содержимое. Права на каталоги 775, на файлы 664:
1 2 | |
И добавить себя в группу www‑data или nginx в зависимости от дистрибутива:
1
| |
Стандартная конфигурация nginx
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | |
Подключение процесс менеджера PHP-FPM к веб-серверу
* Важно - дополнительные пояснения - FastCGI (PHP FPM) для nginx
* Связку nginx и PHP-FPM настраиваем на работу через unix сокет
Создадим новую конфигурацию для localhost:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
и тестовый php-файл в корне
1 2 3 4 | |
Отредактируем конфигурацию PHP-FPM:
Gentoo:
1
| |
Debian:
1
| |
CentOS:
1
| |
Отредактируем в этом файле следующие переменные, listen:
1 2 3 4 5 | |
user, group:
* В CentOS и Gentoo - nginx, Debian/Ubuntu - www‑data
1 2 3 4 5 | |
* в этом файле комментариями является любой текст после символа ; (точка с запятой).
После чего перегружаем nginx и PHP-FPM.
Открываем браузер и заходим на localhost, в результате мы должны увидеть тестовую страницу PHP:

Версия nginx на момент написания - стабильная - nginx/1.4.1, но это в репозитории самого nginx, в репозиториях дистрибутивов версии более ранние, и поэтому могут возникнуть небольшие нестыковки, например в openSUSE 12.3 - версия nginx/1.2.9 и это руководство почти полностью подходит, но необходимо использовать /etc/nginx/fastcgi_params отсюда.
Полезные ссылки:
nginx: http://nginx.org/ru/
nginx Wiki: http://wiki.nginx.org/nginxRu
PHP: http://www.php.net/
PHP-FPM: http://php-fpm.org/
MySQL: http://www.mysql.com/
Автор статьи zenon, и изначально он выкладывал её здесь. У себя я публикую статью с разрешения автора и с сохранением авторства.