Langsame Websites liegen selten am Server selbst – meist an suboptimalen PHP-Einstellungen. Dieses Tutorial zeigt, wie man PHP in Plesk auf Performance trimmt.
1. Der richtige PHP-Handler: FPM statt CGI
Unter Websites & Domains → Domain → PHP-Einstellungen:
- Als Handler FPM-Anwendung, von nginx bereitgestellt wählen (schnellste Variante)
- Falls Apache-Features wie
.htaccesszwingend nötig sind: FPM-Anwendung, von Apache bereitgestellt - CGI/FastCGI nur noch für Alt-Anwendungen verwenden
Aktuelle PHP-Version nutzen! Unter Tools & Einstellungen → PHP-Einstellungen lassen sich mehrere Versionen parallel installieren – neue Projekte immer auf der aktuellsten stabilen Version starten.
2. FPM-Prozessmanagement anpassen
In den PHP-Einstellungen der Domain (Bereich FPM) bzw. in den zusätzlichen Direktiven:
pm = ondemand ; für kleine/mittlere Sites – Prozesse nur bei Bedarf
pm.max_children = 20 ; Obergrenze je nach RAM (Faustregel: RAM-Reserve / ~60 MB pro Prozess)
pm.process_idle_timeout = 10s
Für stark frequentierte Sites ist pm = dynamic mit passenden pm.start_servers/pm.min_spare_servers oft besser. Bei „502 Bad Gateway" unter Last zuerst pm.max_children prüfen (Meldung „server reached max_children" im FPM-Log).
3. OPcache aktivieren und dimensionieren
OPcache hält kompilierte PHP-Skripte im RAM – oft der größte einzelne Performance-Hebel. In den PHP-Einstellungen der Domain unter „Zusätzliche Konfigurationsanweisungen":
opcache.enable=1
opcache.memory_consumption=192
opcache.max_accelerated_files=20000
opcache.validate_timestamps=1
opcache.revalidate_freq=60
Auf reinen Produktionssystemen ohne häufige Deployments kann opcache.revalidate_freq höher gesetzt werden.
4. Sinnvolle Limits statt Maximalwerte
memory_limit = 256M ; für WordPress/Shops meist ausreichend
max_execution_time = 60
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = -1 oder 1024M „auf Verdacht" verschenkt RAM, den FPM-Prozesse blockieren können.
5. nginx-Caching davorschalten
- Websites & Domains → Domain → Apache & nginx (bzw. Hosting-Einstellungen): Statische Dateien direkt von nginx ausliefern aktivieren (
smart static files processing) - Browser-Caching für statische Assets aktivieren
- Für WordPress & Co.: nginx-Caching in Plesk aktivieren (FastCGI-Cache) – bei dynamischen Seiten mit Login-Bereichen die Ausnahmen sauber konfigurieren
6. Messen statt raten
- Advanced Monitoring in Plesk: CPU-, RAM- und PHP-FPM-Auslastung beobachten
php -vbzw. phpinfo() der Domain: Ist OPcache wirklich aktiv?- Lasttest z. B. mit
aboderwrkvor/nach der Änderung – nur eine Stellschraube auf einmal drehen
Kurz-Checkliste
- Aktuelle PHP-Version + FPM via nginx

- OPcache aktiv und groß genug

- FPM-Prozesslimits zum RAM passend

- Statische Dateien über nginx

- Vorher/Nachher gemessen

Welche Werte fahrt ihr bei pm.max_children & Co.? Erfahrungswerte gern hier in den Thread.