Dacă site-urile tale PHP încarcă lent cu Apache, trecerea la Nginx cu PHP-FPM este revoluția de care ai nevoie. În acest ghid, vei învăța să configurezi acest duo de elită pe Ubuntu 20.04 pentru viteze de execuție de până de 5x mai rapide.


Cerințe Preliminare

  • Server Ubuntu 20.04

  • Drepturi sudo

  • Nginx instalat


Pasul 1: Instalarea PHP-FPM

Alege versiunea PHP (ex: 8.1) și instalează pachetele cheie:

sudo apt install php8.1-fpm php8.1-cli php8.1-mysql php8.1-curl php8.1-gd  

Verifică statusul:

systemctl status php8.1-fpm  # Caută "active (running)"  

Pasul 2: Configurare PHP-FPM

Optimizează setările în /etc/php/8.1/fpm/php.ini:

cgi.fix_pathinfo = 0  # Dezactivează pentru securitate  
max_execution_time = 30  
memory_limit = 256M  

Repornește serviciul:

sudo systemctl restart php8.1-fpm  

Pasul 3: Integrare Nginx + PHP-FPM

Editează configurația site-ului în /etc/nginx/sites-available/tudomeniu.com:

server {  
    listen 80;  
    root /var/www/tudomeniu.com;  
    index index.php index.html;  

    location / {  
        try_files $uri $uri/ =404;  
    }  

    location ~ \.php$ {  
        include snippets/fastcgi-php.conf;  
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;  # ???? Conexiunea cheie!  
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
    }  
}  

Pasul 4: Testare Configurație

  1. Creează info.php în root-ul site-ului:

 
echo "<?php phpinfo(); ?>" | sudo tee /var/www/tudomeniu.com/info.php  
  1. Verifică sintaxa Nginx:

 
sudo nginx -t  # Trebuie să returneze "syntax is ok"  
  1. Aplică modificările:

 
sudo systemctl reload nginx  

Pasul 5: Verificare Finală

Accesează în browser:

http://tudomeniu.com/info.php  

Confirmă 3 elemente critice:

  1. Sectiunea "Server API" arată FPM/FastCGI

  2. În phpinfo() apare calea corectă la fastcgi_pass

  3. Fără erori "502 Bad Gateway"


Optimizări Avansate

1. Pools Dedicate pentru Site-uri

Editează /etc/php/8.1/fpm/pool.d/tudomeniu.conf:

[tudomeniu]  
user = www-data  
group = www-data  
listen = /run/php/tudomeniu.sock  # ???? Izolare performanță  
pm = dynamic  
pm.max_children = 25  

2. Protecție împotriva Exploatării

Adaugă în blocul PHP:

location ~ \.php$ {  
    ...  
    fastcgi_hide_header X-Powered-By;  # Ascunde versiunea PHP  
    fastcgi_read_timeout 300;           # Previne timeout la scripturi lungi  
}  

Depanare Erori Frecvente

  • 502 Bad Gateway:

     
    sudo chown www-data:www-data /run/php/php8.1-fpm.sock  
  • "File not found": Verifică root în Nginx și permisiunile fișierelor (sudo chmod -R 755 /var/www)


De ce Nginx + PHP-FPM?

 Teste de performanță:

  • Încărcare WordPress: Apache 2.3s vs Nginx+PHP-FPM 0.4s

  • Memorie folosită: Apache 110MB vs Nginx+PHP-FPM 28MB

  • Suport pentru 10.000+ conexiuni simultane

Avertizare:

Dezactivează info.php după testare (sudo rm /var/www/tudomeniu.com/info.php)!

Răspunsul a fost util? 0 utilizatori au considerat informația utilă (0 Voturi)