Close

Установка и настройка PHP-FPM

В одном из предыдущих постов я рассказал об основах работы с веб-сервером nginx. Мы установили его и настроили виртуальный хост со статическим index файлом. Теперь пришла очередь оживить наш хост с помощью php. Php это пока самый популярный язык программирования, используемый в веб-разработке для генерации динамических страниц.

Так как nginx, в отличие от другого веб-сервера Apache, не содержит встроенного php-процессора, то мы будем использовать сервер php-fpm, что означает «fastCGI process manager». Мы укажем nginx передавать запросы на него для обработки.

Установим этот пакет следующей командой

Базовая конфигурация PHP по умолчанию содержится в файле

Основная конфигурация fpm лежит в файле

В конце этого файла подключаются файлы виртуальных пулов
из директории /etc/php5/fpm/pool.d/

Нас интересует файл /etc/php5/fpm/pool.d/www.conf
В нем нужно убедится что в строках user, group, listen.owner и listen.group указан наш пользователь, под которым у нас работает nginx. Чаще всего это www-data, но можно указать любого другого.
Также нужно указать сокет, через который fpm будет общаться с nginx.
listen = /var/run/php5-fpm.sock

Чтобы изменения вступили в силу, php-fpm нужно перезапустить

Теперь нужно настроить хост в nginx
Создадим файл:

В котором создадим upstream, который в дальнейшем можно использовать для всех виртуальных хостов.

Этот файл нужно подключить в основном конфигуграции nginx:

В конце файла, перед строками:
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
Добавить строку:
include common/upstream;

Затем в директории /etc/nginx/sites-available/
Создадим файл с нашим хостом, допустим, он называется mysite.local

В строке
root /home/sites/mysite.local/public_html;
Указана директория в которой должен находиться индексный файл сайта.
Создадим там файл для проверки.

Создаем ссылку на конфигурацию в директорию sites-enabled, из которой nginx считывает виртуальные хосты;

Протестируем конфигурацию nginx

Ответ должен быть похож на этот:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Теперь перезапускаем nginx

Теперь, если все прошло хорошо, nginx будет передавать запросы к php, а тот возвращать результат, который мы увидим в браузере. В нашем случае, это будет страница с информацией функции phpinfo().

Поделиться: