Tilbake til blogg
Januar 13, 2026Guider

Hvordan konfigurere PHP-FPM for optimal ytelse

Komplett guide om konfigurering av PHP-FPM pool-innstillinger, ytelsestuning og integrasjon med Nginx.

Hvordan konfigurere PHP-FPM for optimal ytelse

PHP-FPM (FastCGI Process Manager) er en alternativ PHP FastCGI-implementering med tilleggsfunksjoner nyttig for nettsteder med høy trafikk. Riktig konfigurasjon kan forbedre serverens ytelse og ressursutnyttelse betydelig.

Installere 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

# Start og aktiver PHP-FPM
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

Konfigurere PHP-FPM Pool

Rediger pool-konfigurasjonsfilen for å optimalisere ytelse:

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

# Nøkkelinnstillinger:
user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

# Prosesshåndtering
pm = dynamic
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 15
pm.max_requests = 500

Ytelsestuning

Optimaliser PHP-FPM for serverens ressurser:

bash
# Beregn optimal max_children:
# (Total RAM - Andre tjenester) / (Minne per PHP-prosess)
# Eksempel: (2GB - 500MB) / 50MB = 30 max_children

# Rediger php.ini for bedre ytelse
sudo nano /etc/php/8.1/fpm/php.ini

# Anbefalte innstillinger:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# Start PHP-FPM på nytt
sudo systemctl restart php-fpm

Nginx konfigurasjon

Konfigurer Nginx til å jobbe med PHP-FPM:

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

# Legg til PHP-håndtering:
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 og last inn Nginx på nytt
sudo nginx -t
sudo systemctl reload nginx

Overvåke PHP-FPM

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

# Se PHP-FPM prosesser
ps aux | grep php-fpm

# Sjekk pool-status (hvis statusside er aktivert)
curl http://localhost/status

# Se logger
sudo tail -f /var/log/php8.1-fpm.log

PHP-FPM optimaliseringstips

  • Juster pm.max_children basert på tilgjengelig RAM
  • Bruk pm = dynamic for de fleste brukstilfeller
  • Sett pm.max_requests for å forhindre minnelekkasjer
  • Aktiver opcache for bedre ytelse
  • Overvåk PHP-FPM status regelmessig
  • Bruk separate pools for forskjellige applikasjoner
  • Hold PHP og PHP-FPM oppdatert