FPM використовує синтаксис php.ini для свого конфігураційного файла - 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 означає 'відключено'.
Початкове значення: 0 (відключено).
emergency_restart_interval
mixed
Інтервал часу, який використовує emergency_restart_interval, щоб визначити коли FPM буде м'яко перезапущено. Це може бути корисно, щоб уникнути випадкових пошкоджень прискорювача загальної пам'яті. Доступні Одиниці Виміру: s (секунди), m (хвилини), h (години), або d (дні). Одиниці виміру початково: секунди. Початкове значення: 0 (виключено).
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) для зворотнього логування. Значення '-1' означає 'без обмежень'. Початкове значення: -1.
listen.allowed_clients
string
Список ipv4 адрес FastCGI-клієнтів, які дозволені для підключення. Еквівалент для змінної оточення FCGI_WEB_SERVER_ADDRS в оригінальному PHP FastCGI (5.2.2+). Має сенс лише з прослуховуванням TCP-сокета. Кожна адреса повинна бути розділена через кому. Якщо встановити пусте значення, підключення буде прийматись з будь-якої адреси. Початкове значення: any.
listen.owner
string
Виставляє права для unix-сокетів, якщо вони використовуються. В Linux, права на читання/запис потрібно встановлювати для того, щоб дозволити підключення з веб-сервера. В багатьох системах, заснованих на 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
URI для перекляду сторінки FPM-статуса. Якщо значення для цього параметра не встановлено, то не буде URI, де очікується сторінка статуса. Початкове значення: none.
ping.path
string
URI для пінга, щоб викликати сторінку моніторинга FPM. Якщо значення не встановлено, не буде URI, де очікується пінг-сторінка. Це можна використовувати для перевірки із зовні, що FPM працює та відповідає. Зауважте, що значення повинно починатись зі слеша (/).
ping.response
string
Цю дериктиву можна використовувати для компонування відповіді під час пінг-запиту. Відповідь формується як text/plain з кодом відповіді 200. Початкове значення: pong.
request_terminate_timeout
mixed
Таймаут для обслуговування одиночних запитів, після якого робочий процес (worker) буде вбито. Цей параметр потрібно використовувати, коли ini-опція 'max_execution_time' по якійсь причині не зупиняє виконання. Значення '0' означає 'виключено'. Доступні одиниці виміру: s (секунди, початково), m (хвилини), h (години), або d (дні). Початкове значення: 0.
request_slowlog_timeout
mixed
Таймаут для обслуговування одиночних запитів, після якого PHP-бектрейс буде поміщено в файл 'slowlog'. Значення '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 не використовується.
chdir
string
Зміна поточного каталогу при старті. Цей параметр повинен мати значення з абсолютним шляхом. Початкове значення: поточна директорія чи / при зміні кореневого каталогу.
catch_workers_output
boolean
Перенаправлення stdout та stderr робочого процеса в головний журнал помилок. Якщо не встановлено, stdout та stderr будуть перенаправлятись до /dev/null відповідно до специфікації FastCGI. Початкове значення: no.
Можна передавати додаткові змінні оточення, та оновлювати налаштування PHP конкретного пулу. Для цього вам потрібно додати наступні параметри до конфігураційного файла пулу (php-fpm.conf).
Приклад #1 Передача змінних оточення та налаштувань для пула
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_value
або
через php_flag
будуть перезаписувати їхні попередні
значення. Майте на увазі, що визначення
disable_functions чи
disable_classes не будуть
перезаписувати їхні попередньо встановлені значення в php.ini,
а додадуть нові значення.
Значення, що визначені через 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.