Înapoi la blog
Ianuarie 13, 2026Ghiduri

Cum să configurezi PHP-FPM pentru performanță optimă

Ghid complet despre configurarea setărilor pool-ului PHP-FPM, optimizarea performanței și integrarea cu Nginx.

Cum să configurezi PHP-FPM pentru performanță optimă

PHP-FPM (FastCGI Process Manager) este o implementare alternativă PHP FastCGI cu caracteristici suplimentare utile pentru site-uri web cu trafic ridicat. Configurarea corectă poate îmbunătăți semnificativ performanța serverului tău și utilizarea resurselor.

Instalarea 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

# Pornește și activează PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Configurarea pool-ului PHP-FPM

Editează fișierul de configurare al pool-ului pentru a optimiza performanța:

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

# Setări cheie:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

# Managementul proceselor
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500

Optimizarea performanței

Optimizează PHP-FPM pentru resursele serverului tău:

bash
# Calculează max_children optim:
# (RAM Total - Alte servicii) / (Memorie per proces PHP)
# Exemplu: (2GB - 500MB) / 50MB = 30 max_children

# Editează php.ini pentru performanță mai bună
sudo nano /etc/php/8.1/fpm/php.ini

# Setări recomandate:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# Repornește PHP-FPM
sudo systemctl restart php-fpm

Configurația Nginx

Configurează Nginx să lucreze cu PHP-FPM:

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

# Adaugă gestionare 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;
}

# Testează și reîncarcă Nginx
sudo nginx -t
sudo systemctl reload nginx

Monitorizarea PHP-FPM

bash
# Verifică starea PHP-FPM
sudo systemctl status php-fpm

# Vizualizează procesele PHP-FPM
ps aux | grep php-fpm

# Verifică starea pool-ului (dacă pagina de stare este activată)
curl http://localhost/status

# Vizualizează jurnalele
sudo tail -f /var/log/php8.1-fpm.log

Sfaturi de optimizare PHP-FPM

  • Ajustează pm.max_children pe baza RAM-ului disponibil
  • Folosește pm = dynamic pentru majoritatea cazurilor de utilizare
  • Setează pm.max_requests pentru a preveni scurgerile de memorie
  • Activează opcache pentru performanță mai bună
  • Monitorizează starea PHP-FPM în mod regulat
  • Folosește pool-uri separate pentru aplicații diferite
  • Păstrează PHP și PHP-FPM actualizate