Повратак на блог
Јануар 13, 2026Водичи

Како конфигурисати PHP-FPM за оптималне перформансе

Потпун водич за конфигурацију поставки PHP-FPM базена, подешавање перформанси и интеграцију са Nginx-ом.

Како конфигурисати PHP-FPM за оптималне перформансе

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 процесу)
# Пример: (2GB - 500MB) / 50MB = 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 на основу доступног RAM-а
  • Користите pm = dynamic за већину случајева употребе
  • Поставите pm.max_requests како бисте спречили цурење меморије
  • Омогућите opcache за боље перформансе
  • Редовно пратите статус PHP-FPM-а
  • Користите засебне базене за различите апликације
  • Одржавајте PHP и PHP-FPM ажурнима