Zurück zum Blog
Januar 13, 2026Anleitungen

So konfigurieren Sie PHP-FPM für optimale Leistung

Vollständige Anleitung zur Konfiguration der PHP-FPM Pool-Einstellungen, Performance-Tuning und Integration mit Nginx.

So konfigurieren Sie PHP-FPM für optimale Leistung

PHP-FPM (FastCGI Process Manager) ist eine alternative PHP-FastCGI-Implementierung mit zusätzlichen Funktionen, die für Websites mit hohem Traffic nützlich sind. Eine korrekte Konfiguration kann die Serverleistung und Ressourcennutzung erheblich verbessern.

PHP-FPM installieren

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

# PHP-FPM starten und aktivieren
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

PHP-FPM Pool konfigurieren

Bearbeiten Sie die Pool-Konfigurationsdatei, um die Leistung zu optimieren:

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

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

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

Performance Tuning

Optimieren Sie PHP-FPM für Ihre Serverressourcen:

bash
# Optimalen Wert für max_children berechnen:
# (Gesamt-RAM - Andere Dienste) / (Speicher pro PHP-Prozess)
# Beispiel: (2GB - 500MB) / 50MB = 30 max_children

# php.ini für bessere Leistung bearbeiten
sudo nano /etc/php/8.1/fpm/php.ini

# Empfohlene Einstellungen:
memory_limit = 256M
max_execution_time = 300
upload_max_filesize = 64M
post_max_size = 64M

# PHP-FPM neu starten
sudo systemctl restart php-fpm

Nginx-Konfiguration

Konfigurieren Sie Nginx für die Zusammenarbeit mit PHP-FPM:

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

# PHP-Handling hinzufügen:
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;
}

# Nginx testen und neu laden
sudo nginx -t
sudo systemctl reload nginx

PHP-FPM überwachen

bash
# PHP-FPM Status prüfen
sudo systemctl status php-fpm

# PHP-FPM Prozesse ansehen
ps aux | grep php-fpm

# Pool-Status prüfen (falls Status-Seite aktiviert)
curl http://localhost/status

# Logs einsehen
sudo tail -f /var/log/php8.1-fpm.log

PHP-FPM Optimierungs-Tipps

  • max_children basierend auf verfügbarem RAM anpassen
  • pm = dynamic für die meisten Anwendungsfälle verwenden
  • pm.max_requests setzen, um Speicherlecks zu verhindern
  • Opcache für bessere Leistung aktivieren
  • PHP-FPM Status regelmäßig überwachen
  • Separate Pools für verschiedene Anwendungen verwenden
  • PHP und PHP-FPM aktuell halten