Через FPM запускают набор пулов процессов с разными настройками.
Эти параметры разрешается передавать пулу.
-
listen
string
-
Адрес, который будет принимать FastCGI-запросы.
Синтаксис: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'.
Опция обязательна для каждого пула.
-
listen.backlog
int
-
Устанавливает listen(2) backlog. Значение -1
означает максимум на системах BSD.
Значение по умолчанию: -1
(FreeBSD или OpenBSD) или 511
.
(Linux и другие платформы).
-
listen.allowed_clients
string
-
Список IPv4- или IPv6-адресов клиентов FastCGI, которым разрешается подключение.
Эквивалент переменной окружения FCGI_WEB_SERVER_ADDRS в оригинальном PHP FastCGI (5.2.2+).
Смысл в установке директивы появляется только с TCP-сокетом прослушивания. Каждый адрес разделяют запятой.
Соединения будут приниматься с любого IP-адреса, если оставить значение пустым.
Значение по умолчанию: нет, принимается любой IP-адрес.
-
listen.owner
string
-
Устанавливает разрешения для Unix-сокета, если подключение установили через Unix-сокет.
В Linux для разрешения соединений к веб-серверу устанавливают права на чтение и запись.
Часто системы на основе BSD разрешают соединения независимо от прав доступа.
Значение по умолчанию: пользователь и группа задаются как пользователь,
от имени которого запускается сервер, для режима устанавливаются разрешения 0660.
-
listen.group
string
-
Смотрите listen.owner
.
-
listen.mode
string
-
Смотрите listen.owner
.
-
listen.acl_users
string
-
Опция настраивает список управления доступом (ACL) POSIX,
если список поддерживается.
Директивы listen.owner
и listen.group
проигнорируются, если директиву установили.
Значение задаётся списком имён через запятую.
-
listen.acl_groups
string
-
Смотрите описание директивы listen.acl_users
.
Значение задаётся списком имён групп через запятую.
-
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
в оригинальном FastCGI-интерфейсе PHP.
-
pm.start_servers
int
-
Количество дочерних процессов, которое менеджер создаёт при запуске. Директива работает,
только когда для параметра pm
установили значение dynamic
.
Значение по умолчанию: (min_spare_servers + max_spare_servers) / 2.
-
pm.min_spare_servers
int
-
Минимальное число неактивных процессов сервера. Директива работает, только когда
для параметра pm
установили значение dynamic
.
В таких случаях параметр становится обязательным.
-
pm.max_spare_servers
int
-
Максимальное число неактивных процессов сервера. Директива работает, только когда
для параметра pm
установили значение dynamic
.
В таких случаях параметр становится обязательным.
-
pm.max_spawn_rate
int
-
Количество одновременных порождений дочерних процессов.
Директива работает, только когда для параметра pm
установили значение dynamic
.
Значение по умолчанию: 32
-
pm.process_idle_timeout
mixed
-
Количество секунд, по истечении которых процесс, который простаивает, завершится.
Директива работает, только когда для параметра pm
установили значение ondemand
.
Допустимые единицы: s (секунды) (значение по умолчанию), m (минуты), h (часы) или d (дни).
Значение по умолчанию: 10s.
-
pm.max_requests
int
-
Число запросов дочернего процесса, после которого процесс перезапустится.
Это полезно для устранения утечек памяти при работе со сторонними
библиотеками. Для бесконечной обработки запросов устанавливают значение '0'.
Эквивалент PHP_FCGI_MAX_REQUESTS. Значение по умолчанию: 0.
-
pm.status_listen
string
-
Адрес, по которому менеджер примет запрос состояния FastCGI-интерфейса. Директива создаёт новый невидимый пул,
который умеет обрабатывать запросы независимо. Это полезно, когда основной пул занят запросами,
которые долго выполняются, поскольку страница состояния FPM по-прежнему
доступна для получения до завершения длительных запросов.
Синтаксис значений директивы аналогичен синтаксису директивы listen.
Значение по умолчанию: none.
-
pm.status_path
string
-
URI-идентификатор для просмотра страницы состояния FPM-менеджера.
Значение начинается со слеша /. URI не распознается как страница состояния,
если значение директивы не установили. Значение по умолчанию: none.
-
ping.path
string
-
Ссылка на ping-страницу FPM-мониторинга. Ping-страница отображаться не будет,
если значение не установили. Директивой пользуются для тестирования
из внешнего мира, чтобы убедиться, что FPM жив и отвечает. Обратите внимание, что значение
начинается со слеша /.
-
ping.response
string
-
Директивой настраивают ответ на ping-запрос.
Ответ формируется как text/plain с кодом ответа 200.
Значение по умолчанию: pong.
-
process.priority
int
-
Устанавливает приоритет nice(2), который применяется к рабочему процессу,
только если процесс установили. Директива принимает значения от -19 для высшего
приоритета до 20 для самого низкого.
Значение по умолчанию: нет.
-
process.dumpable
bool
-
Устанавливает флаг процесса dumpable (PR_SET_DUMPABLE prctl),
даже если пользователь процесса или группа отличается от пользователя мастер-процесса.
Это разрешает создавать дамп ядра процесса и выполнять ptrace процесса для пользователя пула.
Значение по умолчанию: no. Директива доступна с PHP 7.0.29, 7.1.17 и 7.2.5.
-
prefix
string
-
Задаёт префикс для вычисления пути
-
request_terminate_timeout
mixed
-
Время ожидания обслуживания одного запроса, после которого рабочий процесс
завершится. Опцию задействуют, когда опция
'max_execution_time' в файле php.ini не останавливает выполнение скрипта по каким-то причинам.
Значение '0' означает «выключено».
Доступные единицы измерения: s (секунды), m (минуты), h (часы) или d (дни).
Значение по умолчанию: 0.
-
request_terminate_timeout_track_finished
bool
-
Время ожидания, которое установили в директиве request_terminate_timeout,
не включается после сброса данных ответа клиенту функцией
fastcgi_finish_request
или когда приложение завершилось и вызываются внутренние функции завершения работы.
Директива разрешает безоговорочно применять ограничение времени ожидания даже в таких случаях.
Значение по умолчанию: нет, начиная с версии PHP 7.3.0.
-
request_slowlog_timeout
mixed
-
Время ожидания для обслуживания одного запроса, после которого обратная трассировка PHP
сохранится в файл 'slowlog'. Значение '0' означает «выключено».
Доступные единицы измерения: s (секунды), m (минуты), h (часы) или d (дни).
Значение по умолчанию: 0.
-
request_slowlog_trace_depth
int
-
Глубина трассировки стека журнала slowlog.
Значение по умолчанию: 20 с PHP 7.2.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
bool
-
Перенаправление стандартных потоков STDOUT и STDERR рабочего процесса в главный лог ошибок.
Потоки STDOUT и STDERR перенаправятся в файл /dev/null
по правилам спецификаций FastCGI, если директиву не установили.
Значение по умолчанию: no.
-
decorate_workers_output
bool
-
Включает оформление вывода для вывода рабочих процессов при включённой опции
catch_workers_output.
Значение по умолчанию: yes.
Директива доступна с PHP 7.3.0.
-
clear_env
bool
-
Очищает окружение в рабочих процессах FPM-менеджера.
Директива предотвращает попадание произвольных переменных окружения в рабочие процессы FPM-менеджера
и очищает окружение в рабочих процессах перед добавлением переменных окружения,
которые указали в этой конфигурации.
Значение по умолчанию: Yes.
-
security.limit_extensions
string
-
Ограничивает модули, которые FPM проанализирует.
Директива помогает предотвратить ошибки конфигурации на стороне веб-сервера.
FPM-менеджер ограничивают только расширениями .php, чтобы злоумышленники
не выполнили PHP-код с другими расширениями.
Значение по умолчанию: .php .phar
-
apparmor_hat
string
-
Директива разрешает «менять шляпу» (использовать другой контекст безопасности),
если программу защиты AppArmor включили.
Значение по умолчанию: нет.
-
access.log
string
-
Файл журнала доступа.
Значение по умолчанию: нет.
-
access.format
string
-
Формат файла журнала доступа.
Значение по умолчанию: "%R - %u %t \"%m %r\" %s"
:
Передача дополнительных переменных окружения обновляет настройки
PHP для конкретного пула. Для этого добавляют следующие параметры
в файл настройки пула.
, перезапишут своё предыдущее значение.
Обратите внимание, что определения