Настройка
Вернуться к: Менеджер процессов FastCGI (FPM)
FPM использует синтаксис php.ini для своего файла конфигурации php-fpm.conf и файлов конфигурации пулов.
Список глобальных директив php-fpm.conf
-
pid
string -
Путь к PID файлу. Значение по умолчанию: none.
-
error_log
string -
Путь к файлу журнала ошибок. Значение по умолчанию: #INSTALL_PREFIX#/log/php-fpm.log.
-
log_level
string -
Уровень журналирования ошибок. Возможные значения: alert, error, warning, notice, debug. Значение по умолчанию: notice.
-
emergency_restart_threshold
int -
При данном числе рабочих процессов, завершенных с SIGSEGV или SIGBUS за промежуток времени, установленный emergency_restart_interval FPM будет перезагружен. Значение 0 означает 'Off' (отключено). Значение по умолчанию: 0 (Off).
-
emergency_restart_interval
mixed -
Интервал времени, используемый emergency_restart_interval, чтобы определить, когда FPM будет мягко перезагружен. Это полезно для избежания случайных повреждений общей памяти ускорителя (accelerator). Доступные единицы измерения: s(секунды), m(минуты), h(часы), или d(дни). Единица измерения по умолчанию: секунды. Значение по умолчанию: 0 (Off).
-
process_control_timeout
mixed -
Время, в течение которого дочерние процессы ждут ответа на сигналы мастер-процессу. Доступные единицы измерения: s(секунды), m(минуты), h(часы) или d(дни). Единица измерения по умолчанию: секунды. Значение по умолчанию: 0.
-
daemonize
boolean -
Запустить FPM в фоновом режиме. Установите значение 'no', чтобы запустить FPM в диспетчере для отладки. Значение по умолчанию: yes.
Список директив для пулов.
Вы можете запускать несколько FPM пулов процессов с различными настройками. Эти параметры могут быть переданы пулу.
-
listen
string -
Адрес, который будет принимать FastCGI-запросы. Синтаксис: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Эта опция обязательна для каждого пула.
-
listen.backlog
int -
Устанавливает listen(2) backlog. Значение '-1' означает неограниченно. Значение по умолчанию: -1.
-
listen.allowed_clients
string -
Список IPv4 адресов FastCGI-клиентов, которые имеют право подключения. Эквивалент переменной окружения среды FCGI_WEB_SERVER_ADDRS в оригинальном PHP FastCGI (5.2.2+). Имеет смысл только с TCP-сокетом. Каждый адрес должен быть отделен запятой. Если оставить значение пустым, то соединения будут приниматься с любого IP. Значение по умолчанию: any.
-
listen.owner
string -
Задает права для unix socket, если они используются. В Linux, чтобы разрешить соединения web серверу, должны быть установлены права на чтение/запись. Во многих основанных на BSD системах возможность соединения не зависит от прав доступа. Значение по умолчанию: используется пользователь и группа, от имени которого запущен сервер, установлен режим 0660.
-
listen.group
string -
См. listen.owner.
-
listen.mode
string -
См. listen.owner.
-
user
string -
Unix-пользователь FPM-процессов. Этот параметр является обязательным.
-
group
string -
Unix-группа FPM-процессов. Если не установлен, группа по умолчанию равняется имени пользователя.
-
pm
string -
Выбор того, как менеджер процессов будет контролировать создание дочерних процессов. Возможные значения: static, ondemand, dynamic. Этот параметр является обязательным.
static - фиксированное число дочерних процессов (pm.max_children).
ondemand - число процессов, порождающихся по требованию (когда появляются запросы, в отличии от опции dynamic, когда стартует определенное количество процессов, равное pm.start_servers, вместе с запуском службы.
dynamic - динамически изменяющееся число дочерних процессов, задается на основании следующих директив: pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
-
pm.max_children
int -
Число дочерних процессов, которые будут созданы, когда pm установлен в static, или же максимальное число процессов, которые будут созданы, когда pm установлен в dynamic. Этот параметр является обязательным.
Этот параметр устанавливает ограничение на число одновременных запросов, которые будут обслуживаться. Эквивалент директивы ApacheMaxClients с mpm_prefork и переменной окружения среды PHP_FCGI_CHILDREN в в оригинальном PHP FastCGI.
-
pm.start_servers
int -
Число дочерних процессов, создаваемых при запуске. Используется, только когда pm установлен в dynamic. Значение по умолчанию: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
-
pm.min_spare_servers
int -
Желаемое минимальное число неактивных процессов сервера. Используется, только когда pm установлено в dynamic. Кроме того, это обязательный параметр в этом случае.
-
pm.max_spare_servers
int -
Желаемое максимальное число неактивных процессов сервера. Используется, только когда pm установлен в dynamic. Кроме того, это обязательный параметр в этом случае.
-
pm.max_requests
int -
Число запросов дочернего процесса, после которого процесс будет перезапущен. Это полезно для избежания утечек памяти при использовании сторонних библиотек. Для бесконечной обработки запросов укажите '0'. Эквивалент PHP_FCGI_MAX_REQUESTS. Значение по умолчанию: 0.
-
pm.status_path
string -
Ссылка, по которой можно посмотреть страницу состояния FPM. Если значение не установлено, то страница статуса отображаться не будет. Значение по умолчанию: none.
-
ping.path
string -
Ссылка на ping-страницу мониторинга FPM. Если значение не установлено, ping-страница отображаться не будет. Может быть использовано для тестирования извне, чтобы убедиться, что FPM жив и реагирует. Обратите внимание, что значение должно начинаться с косой черты (/).
-
ping.response
string -
Эта директива может быть использована на настройки ответа на ping-запрос. Ответ формируется как text/plain со кодом ответа 200. Значение по умолчанию: pong.
-
request_terminate_timeout
mixed -
Таймаут для обслуживания одного запроса, после чего рабочий процесс будет завершен. Этот вариант следует использовать, когда опция 'max_execution_time' в php.ini не останавливает выполнение скрипта по каким-то причинам. Значение '0' означает 'выключено'. Доступные единицы измерения: s(секунды), m(минуты), h(часы) или d(дни). Значение по умолчанию: 0.
-
request_slowlog_timeout
mixed -
Таймаут для обслуживания одного запроса, после чего PHP backtrace будет сохранен в файл 'showlog'. Значение '0' означает 'выключено'. Доступные единицы измерения: s(секунды), m(минуты), h(часы) или d(дни). Значение по умолчанию: 0.
-
slowlog
string -
Лог-файл для медленных запросов. Значение по умолчанию: #INSTALL_PREFIX#/log/php-fpm.log.slow.
-
rlimit_files
int -
Устанавливает лимит дескрипторов открытых файлов rlimit. Значение по умолчанию: определяется значением системы.
-
rlimit_core
int -
Устанавливает максимальное количество используемых ядер rlimit. Возможные значения: 'unlimited' или целое число большее или равное 0. Значение по умолчанию: определяется значением системы.
-
chroot
string -
Директория chroot окружения при старте. Это значение должно быть определено как абсолютный путь. Если значение не установлено, chroot не используется.
-
chdir
string -
Chdir изменяет текущую директорию при старте. Это значение должно быть определено как абсолютный путь. Значение по умолчанию: текущая директория или / при использовании chroot.
-
catch_workers_output
boolean -
Перенаправление STDOUT и STDERR рабочего процесса в главный лог ошибок. Если не установлен, STDOUT и STDERR будут перенаправлены в /dev/null в соответствии со спецификацией FastCGI. Значение по умолчанию: no.
Можно передать дополнительные переменные окружения и обновить настройки PHP для определенного пула. Для этого вам необходимо добавить следующие параметры в файл настройки пула.
Пример #1 Передача переменных окружения и настроек PHP пулу
env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com php_flag[display_errors] = off php_admin_value[error_log] = /var/log/fpm-php.www.log php_admin_flag[log_errors] = on php_admin_value[memory_limit] = 32M
Настройки, определенные через php_admin_value и php_admin_flag, не могут быть перезаписаны через ini_set().
Начиная с версии 5.3.3 настройки PHP можно устанавливать через веб-сервер.
Пример #2 Установка настроек PHP в nginx.conf
set $php_value "pcre.backtrack_limit=424242"; set $php_value "$php_value \n pcre.recursion_limit=99999"; fastcgi_param PHP_VALUE $php_value; fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/htdocs";
Так как эти настройки передаются в php-fpm как FastCGI-заголовки, php-fpm не должен быть привязан к общедоступному адресу из мира. В противном случае любой сможет изменить настройки PHP. Смотрите также listen.allowed_clients.
Вернуться к: Менеджер процессов FastCGI (FPM)