Grįžti į tinklaraštį
Sausis 13, 2026Vadovai

Kaip sukonfigūruoti PHP-FPM optimaliam našumui

Pilnas vadovas PHP-FPM telkinio nustatymų konfigūravimui, našumo derinimui ir integracijai su Nginx.

Kaip sukonfigūruoti PHP-FPM optimaliam našumui

PHP-FPM (FastCGI Process Manager) yra alternatyvus PHP FastCGI įgyvendinimas su papildomomis funkcijomis, naudingomis didelio srauto svetainėms. Tinkama konfigūracija gali žymiai pagerinti jūsų serverio našumą ir išteklių panaudojimą.

PHP-FPM diegimas

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

# Paleisti ir įjungti PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

PHP-FPM telkinio konfigūravimas

Redaguokite telkinio konfigūracijos failą našumui optimizuoti:

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

# Pagrindiniai nustatymai:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

# Procesų valdymas
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500

Našumo derinimas

Optimizuokite PHP-FPM savo serverio ištekliams:

bash
# Apskaičiuoti optimalų max_children:
# (Visas RAM - Kitos paslaugos) / (Atmintis PHP procesui)
# Pavyzdys: (2GB - 500MB) / 50MB = 30 max_children

# Redaguoti php.ini geresniam našumui
sudo nano /etc/php/8.1/fpm/php.ini

# Rekomenduojami nustatymai:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# Iš naujo paleisti PHP-FPM
sudo systemctl restart php-fpm

Nginx konfigūracija

Konfigūruokite Nginx darbui su PHP-FPM:

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

# Pridėti PHP tvarkymą:
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;
}

# Išbandyti ir iš naujo įkelti Nginx
sudo nginx -t
sudo systemctl reload nginx

PHP-FPM stebėjimas

bash
# Patikrinti PHP-FPM būseną
sudo systemctl status php-fpm

# Peržiūrėti PHP-FPM procesus
ps aux | grep php-fpm

# Patikrinti telkinio būseną (jei būsenos puslapis įjungtas)
curl http://localhost/status

# Peržiūrėti žurnalus
sudo tail -f /var/log/php8.1-fpm.log

PHP-FPM optimizavimo patarimai

  • Koreguokite pm.max_children pagal turimą RAM
  • Daugeliu atvejų naudokite pm = dynamic
  • Nustatykite pm.max_requests, kad išvengtumėte atminties nutekėjimo
  • Įjunkite opcache geresniam našumui
  • Reguliariai stebėkite PHP-FPM būseną
  • Naudokite atskirus telkinius skirtingoms programoms
  • Laikykite PHP ir PHP-FPM atnaujintus