FPM использует синтаксис php.ini для своего файла конфигурации php-fpm.conf и файлов конфигурации пулов.
pid
string
Путь к PID файлу. По умолчанию: none.
error_log
string
Путь к файлу журнала ошибок. По умолчанию: #INSTALL_PREFIX#/log/php-fpm.log. Если задано как "syslog", логирование будет производиться в syslogd, а не в локальный файл.
log_level
string
Уровень журналирования ошибок. Возможные значения: alert, error, warning, notice, debug. По умолчанию: notice.
syslog.facility
string
Используется для указания, какой тип программ будет логировать сообщения. По умолчанию: daemon.
syslog.ident
string
Предшествует любому сообщению. Если у вас запущено несколько инстансов FPM, вы можете изменить значение по умолчанию на то, которое вам необходимо. По умолчанию: php-fpm.
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.
process.max
int
Максимальное количество процессов, которое может породить FPM. Это сделано для того, чтобы контролировать глобальное количество процессов, когда используется большой пул динамического PM. Используйте с осторожность. По умолчанию: 0.
process.priority
int
Указывает приоритет (Unix nice(2)) мастер-процесса (только если установлено). Принимает значения от -19(максимальный приоритет) до 20(минимальный.) По умолчанию: не установлено.
daemonize
boolean
Запустить FPM в фоновом режиме. Установите значение 'no', чтобы запустить FPM в диспетчере для отладки. По умолчанию: yes.
rlimit_files
int
Устанавливает rlimit открытых файловых дескрипторов для мастер-процесса. По умолчанию: Устанавливает rlimit для открытого дескриптора файла мастер-процесса(?).
rlimit_core
int
Устанавливает rlimit максимального размера ядра для мастер-процесса. По умолчанию 0.
events.mechanism
string
Указывает, какой событийный механизм будет использован FPM. Возможны такие варианты: select, pool, epoll, kqueue (*BSD), port (Solaris). По умолчанию: не установлено (автоопределение).
systemd_interval
int
Если FPM собран с интекграцией с systemd, указывает интервал, в секундах, между оповещениями systemd о своем состоянии. Для отключения задайте 0. По умолчанию: 10.
Вы можете запускать несколько 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. Начиная с PHP 5.5.20 и 5.6.4, можно использовать IPv6.
listen.owner
string
Задает права для unix socket, если они используются. В Linux, чтобы разрешить соединения web серверу, должны быть установлены права на чтение/запись. Во многих основанных на BSD системах возможность соединения не зависит от прав доступа. Значение по умолчанию: используется пользователь и группа, от имени которого запущен сервер, установлен режим 0660.
listen.group
string
См. listen.owner.
listen.mode
string
Смотри listen.owner.
listen.acl_users
string
Если поддерживается Список Контроля Доступа (ACL) POSIX, вы можете настроить его с помощью этой опции. Если задано, то listen.owner и listen.group будут проигнорированы. Значение задается списком имен, разделенных запятой. Доступно с PHP 5.6.5.
listen.acl_groups
string
Смотри listen.acl_users. Значение задается списком имен групп, разделенных запятой. Доступно с PHP 5.6.5.
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.
clear_env
boolean
Очищает окружение в "worker" процессах FPM. Prevents arbitrary environment variables from reaching FPM worker processes by clearing the environment in workers before env vars specified in this pool configuration are added. Доступно с PHP 5.4.27, 5.5.11, и 5.6.0. По умолчанию: Yes.
security.limit_extensions
string
Ограничивает расширения, которые FPM будет разбирать. Это позволит предотвратить ошибки на стороне веб-сервера. Вы должны ограничить FPM только расширениями .php, чтобы предотвратить выполнение PHP-кода нерадивыми пользователями из файлов с другими расширениями. По умолчанию: .php.
Можно передать дополнительные переменные окружения и обновить настройки 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.