Atpakaļ uz blogu
Janvāris 13, 2026Ceļveži

Kā konfigurēt PHP-FPM optimālai veiktspējai

Pilnīgs ceļvedis par PHP-FPM pūla iestatījumu konfigurēšanu, veiktspējas regulēšanu un integrāciju ar Nginx.

Kā konfigurēt PHP-FPM optimālai veiktspējai

PHP-FPM (FastCGI Process Manager) ir alternatīva PHP FastCGI implementācija ar papildu funkcijām, kas noderīgas augsta trafika vietnēm. Pareiza konfigurācija var ievērojami uzlabot jūsu servera veiktspēju un resursu izmantošanu.

PHP-FPM instalēšana

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

# Palaist un iespējot PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

PHP-FPM pūla konfigurēšana

Rediģējiet pūla konfigurācijas failu, lai optimizētu veiktspēju:

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

# Galvenie iestatījumi:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

# Procesu pārvaldība
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500

Veiktspējas regulēšana

Optimizējiet PHP-FPM jūsu servera resursiem:

bash
# Aprēķināt optimālo max_children:
# (Kopējā RAM - Citi pakalpojumi) / (Atmiņa uz PHP procesu)
# Piemērs: (2GB - 500MB) / 50MB = 30 max_children

# Rediģēt php.ini labākai veiktspējai
sudo nano /etc/php/8.1/fpm/php.ini

# Ieteicamie iestatījumi:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# Pārstartēt PHP-FPM
sudo systemctl restart php-fpm

Nginx konfigurācija

Konfigurējiet Nginx darbam ar PHP-FPM:

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

# Pievienot PHP apstrādi:
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;
}

# Testēt un pārlādēt Nginx
sudo nginx -t
sudo systemctl reload nginx

PHP-FPM uzraudzība

bash
# Pārbaudīt PHP-FPM statusu
sudo systemctl status php-fpm

# Skatīt PHP-FPM procesus
ps aux | grep php-fpm

# Pārbaudīt pūla statusu (ja statusa lapa ir iespējota)
curl http://localhost/status

# Skatīt žurnālus
sudo tail -f /var/log/php8.1-fpm.log

PHP-FPM optimizācijas padomi

  • Pielāgojiet pm.max_children, pamatojoties uz pieejamo RAM
  • Izmantojiet pm = dynamic lielākajai daļai gadījumu
  • Iestatiet pm.max_requests, lai novērstu atmiņas noplūdes
  • Iespējojiet opcache labākai veiktspējai
  • Regulāri uzraugiet PHP-FPM statusu
  • Izmantojiet atsevišķus pūlus dažādām lietojumprogrammām
  • Uzturiet PHP un PHP-FPM atjauninātus