Это руководство открывает серию материалов по установке известных систем управления содержимым (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, и изначально он выкладывал её здесь. У себя я публикую статью с разрешения автора и с сохранением авторства.