Що таке PHP-FPM і навіщо його налаштовувати
PHP-FPM (FastCGI Process Manager) — менеджер процесів PHP, який запускає PHP як окремий сервіс. У зв'язці з Nginx він забезпечує високу продуктивність: Nginx обробляє статику, а PHP-FPM — динамічні запити. Правильне налаштування PHP-FPM дозволяє обслуговувати в 2–5 разів більше запитів без збільшення RAM.
Файл конфігурації пулу
Основний файл пулу знаходиться в /etc/php/8.x/fpm/pool.d/www.conf:
sudo nano /etc/php/8.2/fpm/pool.d/www.confРежими управління процесами (pm)
| Режим | Опис | Коли використовувати |
|---|---|---|
static | Фіксована кількість процесів | Висококлієнтні сервери |
dynamic | Кількість процесів змінюється | Більшість VPS (рекомендовано) |
ondemand | Процеси створюються за запитом | Малий трафік, економія RAM |
Оптимальні значення pm для dynamic
pm = dynamic
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 3
pm.max_spare_servers = 8
pm.max_requests = 500Формула розрахунку pm.max_children: Розділіть доступну RAM на середній розмір одного PHP-процесу. Приклад: 2 ГБ RAM, середній процес 80 МБ → max_children ≈ 25.
Slow Log — аналіз повільних скриптів
slowlog = /var/log/php8.2-fpm-slow.log
request_slowlog_timeout = 5sЗастосування налаштувань
sudo systemctl reload php8.2-fpmНе перезапускайте PHP-FPM під час високого навантаження — використовуйте
reload.