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
-
Creează
info.php
în root-ul site-ului:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/tudomeniu.com/info.php
-
Verifică sintaxa Nginx:
sudo nginx -t # Trebuie să returneze "syntax is ok"
-
Aplică modificările:
sudo systemctl reload nginx
Pasul 5: Verificare Finală
Accesează în browser:
http://tudomeniu.com/info.php
Confirmă 3 elemente critice:
-
Sectiunea "Server API" arată FPM/FastCGI
-
În
phpinfo()
apare calea corectă lafastcgi_pass
-
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
)!