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 можна встановлювати через веб-сервер.