Січень 13, 2026Посібники
Як налаштувати PHP-FPM для оптимальної продуктивності
Повний посібник із налаштування пулів PHP-FPM, оптимізації продуктивності та інтеграції з Nginx.

PHP-FPM (FastCGI Process Manager) — це альтернативна реалізація PHP FastCGI з додатковими функціями, корисними для сайтів із високим трафіком. Правильна конфігурація може значно покращити продуктивність вашого сервера та використання ресурсів.
Встановлення PHP-FPM
bash
# Ubuntu/Debian
sudo apt update
sudo apt install php-fpm php-mysql php-mbstring php-xml php-curl -y
# CentOS/RHEL
sudo yum install php-fpm php-mysql php-mbstring php-xml php-curl -y
# Запустіть та ввімкніть PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpmНалаштування пулу PHP-FPM
Відредагуйте конфігураційний файл пулу, щоб оптимізувати продуктивність:
bash
sudo nano /etc/php/8.1/fpm/pool.d/www.conf
# Ключові налаштування:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data
# Керування процесами
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500Налаштування продуктивності
Оптимізуйте PHP-FPM відповідно до ресурсів вашого сервера:
bash
# Розрахуйте оптимальне значення max_children:
# (Загальна пам'ять - Інші сервіси) / (Пам'ять на один PHP-процес)
# Приклад: (2 ГБ - 500 МБ) / 50 МБ = 30 max_children
# Відредагуйте php.ini для кращої продуктивності
sudo nano /etc/php/8.1/fpm/php.ini
# Рекомендовані налаштування:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M
# Перезапустіть PHP-FPM
sudo systemctl restart php-fpmКонфігурація Nginx
Налаштуйте Nginx для роботи з PHP-FPM:
bash
sudo nano /etc/nginx/sites-available/yourdomain.com
# Додайте обробку PHP:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# Перевірте та перезавантажте Nginx
sudo nginx -t
sudo systemctl reload nginxМоніторинг PHP-FPM
bash
# Перевірте статус PHP-FPM
sudo systemctl status php-fpm
# Перегляньте процеси PHP-FPM
ps aux | grep php-fpm
# Перевірте статус пулу (якщо сторінку статусу ввімкнено)
curl http://localhost/status
# Перегляд журналів
sudo tail -f /var/log/php8.1-fpm.logПоради з оптимізації PHP-FPM
- Налаштуйте pm.max_children залежно від доступної оперативної пам'яті
- Використовуйте pm = dynamic для більшості випадків
- Встановіть pm.max_requests для запобігання витоку пам'яті
- Увімкніть opcache для кращої продуктивності
- Регулярно моніторьте статус PHP-FPM
- Використовуйте окремі пули для різних додатків
- Тримайте PHP та PHP-FPM оновленими