Natrag na blog
Siječanj 13, 2026Vodiči

Kako konfigurirati PHP-FPM za optimalne performanse

Potpuni vodič za konfiguraciju postavki PHP-FPM bazena, podešavanje performansi i integraciju s Nginxom.

Kako konfigurirati PHP-FPM za optimalne performanse

PHP-FPM (FastCGI Process Manager) je alternativna PHP FastCGI implementacija s dodatnim značajkama korisnim za web stranice s velikim prometom. Pravilna konfiguracija može značajno poboljšati performanse vašeg poslužitelja i iskoristivost resursa.

Instalacija PHP-FPM-a

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

# Pokreni i omogući PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Konfiguracija PHP-FPM bazena

Uredite konfiguracijsku datoteku bazena za optimizaciju performansi:

bash
sudo nano /etc/php/8.1/fpm/pool.d/www.conf

# Ključne postavke:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

# Upravljanje procesima
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500

Podešavanje performansi

Optimizirajte PHP-FPM za resurse vašeg poslužitelja:

bash
# Izračunaj optimalni max_children:
# (Ukupni RAM - Ostale usluge) / (Memorija po PHP procesu)
# Primjer: (2GB - 500MB) / 50MB = 30 max_children

# Uredi php.ini za bolje performanse
sudo nano /etc/php/8.1/fpm/php.ini

# Preporučene postavke:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# Ponovno pokreni PHP-FPM
sudo systemctl restart php-fpm

Nginx konfiguracija

Konfigurirajte Nginx za rad s PHP-FPM-om:

bash
sudo nano /etc/nginx/sites-available/yourdomain.com

# Dodaj rukovanje PHP-om:
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;
}

# Testiraj i ponovno učitaj Nginx
sudo nginx -t
sudo systemctl reload nginx

Praćenje PHP-FPM-a

bash
# Provjeri status PHP-FPM-a
sudo systemctl status php-fpm

# Pregledaj PHP-FPM procese
ps aux | grep php-fpm

# Provjeri status bazena (ako je stranica statusa omogućena)
curl http://localhost/status

# Pregledaj zapisnike
sudo tail -f /var/log/php8.1-fpm.log

Savjeti za optimizaciju PHP-FPM-a

  • Prilagodite pm.max_children na temelju dostupnog RAM-a
  • Koristite pm = dynamic za većinu slučajeva upotrebe
  • Postavite pm.max_requests kako biste spriječili curenje memorije
  • Omogućite opcache za bolje performanse
  • Redovito pratite status PHP-FPM-a
  • Koristite zasebne bazene za različite aplikacije
  • Održavajte PHP i PHP-FPM ažurnima