Tillbaka till bloggen
Januari 13, 2026Guider

Hur man konfigurerar PHP-FPM för optimal prestanda

Komplett guide om konfigurering av PHP-FPM-poolinställningar, prestandajustering och integration med Nginx.

Hur man konfigurerar PHP-FPM för optimal prestanda

PHP-FPM (FastCGI Process Manager) är en alternativ PHP FastCGI-implementering med ytterligare funktioner som är användbara för webbplatser med hög trafik. Korrekt konfiguration kan avsevärt förbättra din servers prestanda och resursutnyttjande.

Installera 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

# Starta och aktivera PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Konfigurera PHP-FPM Pool

Redigera pool-konfigurationsfilen för att optimera prestanda:

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

# Nyckelinställningar:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

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

Prestandajustering

Optimera PHP-FPM för din servers resurser:

bash
# Beräkna optimal max_children:
# (Total RAM - Andra tjänster) / (Minne per PHP-process)
# Exempel: (2GB - 500MB) / 50MB = 30 max_children

# Redigera php.ini för bättre prestanda
sudo nano /etc/php/8.1/fpm/php.ini

# Rekommenderade inställningar:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# Starta om PHP-FPM
sudo systemctl restart php-fpm

Nginx-konfiguration

Konfigurera Nginx för att fungera med PHP-FPM:

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

# Lägg till PHP-hantering:
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;
}

# Testa och ladda om Nginx
sudo nginx -t
sudo systemctl reload nginx

Övervaka PHP-FPM

bash
# Kontrollera PHP-FPM-status
sudo systemctl status php-fpm

# Visa PHP-FPM-processer
ps aux | grep php-fpm

# Kontrollera pool-status (om statussidan är aktiverad)
curl http://localhost/status

# Visa loggar
sudo tail -f /var/log/php8.1-fpm.log

Tips för PHP-FPM-optimering

  • Justera pm.max_children baserat på tillgängligt RAM
  • Använd pm = dynamic för de flesta användningsfall
  • Ställ in pm.max_requests för att förhindra minnesläckor
  • Aktivera opcache för bättre prestanda
  • Övervaka PHP-FPM-status regelbundet
  • Använd separata pooler för olika applikationer
  • Håll PHP och PHP-FPM uppdaterade