Студзень 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:
# (Агульная RAM - Іншыя службы) / (Памяць на адзін 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 абноўленымі