PHPНалаштування
FPM використовує синтаксис php.ini для файлу конфігурації php-fpm.conf і файлів конфігурації пулів.
Список глобальних директив php-fpm.conf
Шлях до файлу PID. Типово: none.
Шлях до файлу журналу помилок. За замовчуванням: #INSTALL_PREFIX#/log/php-fpm.log. Якщо встановлено як "syslog", логування буде здійснюватися в syslogd, а не в локальний файл.
Рівень журналування помилок. Можливі значення: alert, error, warning, notice, debug. Типово: notice.
Обмежити журналування для ліній, що журналюються, що дозволяє записувати повідомлення довжиною більше 1024 символів без упаковки (wrapping). Стандартне значення: 1024. Доступно з PHP 7.3.0.
Експериментальне журналування без додаткової буферизації. Значення за промовчанням: yes. Доступно з PHP 7.3.0.
Використовується для вказівки, який тип програм логуватиме повідомлення. Типово: daemon.
Передує будь-якому повідомленню. Якщо у вас запущено кілька екземплярів FPM, ви можете змінити значення за промовчанням на те, яке вам потрібно. Типово: php-fpm.
При цьому кількість робочих процесів, завершених з SIGSEGV або SIGBUS за проміжок часу, встановлений emergency_restart_interval FPM буде перезавантажено. Значення 0 означає 'Off' (вимкнено). Типово: 0 (Off).
Інтервал часу, який використовується emergency_restart_interval, щоб визначити, коли FPM буде м'яко перезавантажено. Це корисно для запобігання випадковим пошкодженням загальної пам'яті прискорювача (accelerator). Доступні одиниці вимірювання: s(секунди), m(хвилини), h(години), або d(дні). Одиниця виміру за замовчуванням: секунди. Стандартне значення: 0 (Off).
Час, протягом якого дочірні процеси чекають на сигнали майстер-процесу. Доступні одиницівимірювання: s(секунди), m(хвилини), h(години) або d(дні). Одиниця виміру за замовчуванням: секунди. Значення за промовчанням: 0.
Максимальна кількість процесів може породити FPM. Це зроблено для того, щоб контролювати глобальну кількість процесів, коли використовується великий пул динамічного PM. Використовуйте з обережністю. Типово: 0.
Вказує пріоритет (Unix nice(2)) майстер-процесу (тільки якщо встановлено). Приймає значення від -19 (максимальний пріоритет) до 20 (мінімальний). За замовчуванням: не встановлено.
Запустити FPM у фоновому режимі. Встановіть значення 'no', щоб запустити FPM у диспетчері для налагодження. Типово: yes.
Встановлює rlimit відкритих файлових дескрипторів для майстер-процесу. За промовчанням: Встановлює rlimit для відкритого дескриптора файлу майстер-процесу (?).
Встановлює rlimit максимального розміру ядра для майстер-процесу. Типово 0.
Вказує, який механізм дії буде використаний FPM. Можливі такі варіанти: select, pool, epoll, kqueue (*BSD), port (Solaris). За промовчанням: не встановлено (автовизначення).
Якщо FPM зібраний з інтеграцією з systemd, вказує інтервал, в секундах між сповіщеннями systemd про свій стан. Щоб вимкнути, встановіть 0. За замовчуванням: 10.
Перелік директив для пулів.
За допомогою FPM можна запускати кілька пулів процесів з різними налаштуваннями. Ці параметри можуть бути передані пулу.
Адреса, яка прийматиме FastCGI-запити. Синтаксис: 'ip.add.re.ss:port', 'port', '/path/to/unix/socket'. Ця опція є обов'язковою для кожного пулу.
Встановлює listen(2) backlog. Значення '-1' означає необмежено. Значення за промовчанням: -1.
Задає права на unix-сокет, якщо вони використовуються.У Linux для дозволу з'єднань до веб-сервера, мають бути встановлені права на читання/запис. Багато заснованих на BSD-системах можливість з'єднання залежить від прав доступу. Значення за промовчанням: використовується користувач і група, від імені якої запущено сервер, встановлено режим 0660.
Якщо підтримується список керування доступом (ACL) POSIX, можна налаштувати його за допомогою цієї опції. Якщо встановлено, то listen.owner і listen.group будуть проігноровані. Значення визначається списком імен, розділених комою. Доступно з PHP 5.6.5.
Див. listen.acl_users. Значення визначається списком імен груп, розділених комою. Доступно з PHP 5.6.5.
Unix-користувач FPM-процесів. Цей параметр є обов'язковим.
Unix-група FPM-процесів. Якщо не встановлено, група за промовчанням дорівнює імені користувача.
Вибір того, як менеджер процесів контролюватиме створення дочірніх процесів. Можливі значення: 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 встановлений в static, або максимальна кількість процесів, які будуть створені, коли pm встановлений у dynamic. Цей параметр є обов'язковим.
Цей параметр встановлює обмеження на кількість одночаснихзапитів, які обслуговуватимуться. Еквівалент директиви ApacheMaxClients з mpm_prefork і змінного оточення середовища PHP_FCGI_CHILDREN в оригінальному PHP FastCGI.
Число дочірніх процесів, створюваних під час запуску. Використовується, тільки коли pm встановлений у dynamic. Значення за замовчуванням: min_spare_servers+(max_spare_servers - min_spare_servers)/2.
Бажана мінімальна кількість неактивних процесів сервера. Використовується, тільки коли pm встановлено у dynamic. З іншого боку, це обов'язковий параметр у разі.
Бажана максимальна кількість неактивних процесів сервера. Використовується, тільки коли pm встановлений у dynamic. З іншого боку, це обов'язковий параметр у разі.
Число секунд, по закінченню яких процес, що простоює, буде завершено. Використовується тільки якщо pm встановлено як ondemand. Допустимі одиниці: s(econds)(за замовчуванням), m(inutes), h(ours) або d(ays). Типово: 10s.
Число запитів дочірнього процесу, після якого процес буде перезапущено. Це корисно для запобігання витоку пам'яті під час використання сторонніх бібліотек. Для нескінченної обробки запитів вкажіть '0'. Еквівалент PHP_FCGI_MAX_REQUESTS . Значення за промовчанням: 0.
Посилання, за яким можна переглянути сторінку стану FPM. Якщо значення не встановлено, сторінка статусу не відображатиметься. Стандартне значення: none.
Посилання на ping-сторінку FPM моніторингу. Якщо значення не встановлено, ping-сторінка не відображатиметься. Може бути використане для тестування ззовні, щоб переконатися, що FPM живий та відповідає. Зверніть увагу, що значення має починатися з косої межі (/).
Ця директива може бути використана для налаштування відповіді на ping-запит. Відповідь формується як text/plain з кодом відповіді 200. Значенняза замовчуванням pong.
Вказує пріоритет nice(2) для працюючого процесу (тільки якщо заданий). Значення від -19 (найвищий пріоритет) до 20 (найнижчий). Значення за замовчуванням: не встановлено.
Встановити прапор процесу dumpable (PR_SET_DUMPABLE prctl), навіть якщо користувач процесу або група відрізняється від користувача майстер-процесу. Це дозволяє створювати дамп ядра процесу та виконати ptrace процесу для користувача пула. Значення за промовчанням: no. Доступно з PHP 7.0.29, 7.1.17 та 7.2.5.
Задає префікс для обчислення шляху
Таймаут для обслуговування одного запиту, після чого робочий процес буде завершено. Цей варіант слід використовувати, коли опція 'max_execution_time' у php.ini не зупиняє виконання скрипту з якихось причин. Значення '0' означає 'вимкнено'. Доступні одиниці виміру: s(econds), m(inutes), h(ours) або d(ays). Значення за промовчанням: 0.
Таймаут для обслуговування одного запиту, після чого PHP backtrace буде збережено у файл 'slowlog'. Значення '0' означає 'вимкнено'. Доступні одиниці виміру: s(econds), m(inutes), h(ours) або d(ays). Значення за промовчанням: 0.
Лог файл для повільних запитів. Значення за промовчанням: #INSTALL_PREFIX#/log/php-fpm.log.slow.
Встановлює ліміт дескрипторів відкритих файлів rlimit для дочірніх процесів у цьому пулі. Значення за промовчанням: визначається значенням системи.
Встановлює максимальну кількість використовуваних ядер rlimit для дочірніх процесів у цьому пулі. Можливі значення: 'unlimited' або ціле число більше або рівне 0. Значення за замовчуванням: визначається значенням системи.
Директорія chroot оточення у старті. Це значення має визначити як абсолютний шлях. Якщо значення не встановлено, chroot не використовується.
Chdir змінює поточну директорію у старті. Це значення має визначити як абсолютний шлях. Значення за замовчуванням: поточна директорія або при використанні chroot.
Перенаправлення STDOUT і STDERR робочого процесу на головний лог помилок. Якщо не встановлено, STDOUT і STDERR будуть перенаправлені в /dev/null відповідно до специфікації FastCGI. Значення за промовчанням: no.
Увімкніть оформлення виходу (output decoration) для виведення worker-процесу, коли опція catch_workers_output включена. Значення за промовчанням: yes. Доступно з PHP 7.3.0.
Очищає оточення у worker-процесах FPM. Запобігає потраплянню довільних змінних оточення до worker-процесів FPM, очищуючи оточення у worker-процесах до того, як змінні оточення, зазначені в цій конфігурації пула будуть додані. Доступно з PHP 5.4.27, 5.5.11 та 5.6.0. Типово: Yes.
Обмежує розширення, які FPM буде аналізувати. Це може запобігти помилкам конфігурації на стороні веб-сервера. Ви повинні обмежити FPM тільки розширеннями .php для запобігання виконання PHP-коду зловмисниками іншими розширеннями. За замовчуванням: .php .phar
Лог файл доступу. Значення за замовчуванням: не встановлено
Формал лог-файлу доступу. Значення за промовчанням: "%R - %u %t %m %r %s"
Можна передати додаткові змінні оточення та оновити налаштування PHP для певного пулу. Для цього вам необхідно додати такі параметри до файлу налаштування пулу.
Приклад #1 Передача змінних оточення та налаштувань PHP пулу
Налаштування, визначені через php_admin_value та php_admin_flag, не можуть бути перезаписані через ini_set().
Починаючи з версії 5.3.3, налаштування PHP можна встановлювати через веб-сервер.