PHP Performance-Optimierung: Schnellere Websites durch optimales PHP

PHP ist die Grundlage der meisten Websites und CMS-Systeme im Internet. Die richtige PHP-Konfiguration und -Optimierung kann die Performance Ihrer Website um das Zwei- bis Zehnfache steigern. Dieser Guide zeigt Ihnen alle Stellschrauben für schnelleres PHP – von der Konfiguration über Code-Optimierung bis hin zu fortgeschrittenem Profiling.

Warum PHP-Performance wichtig ist

PHP verarbeitet die serverseitige Logik der meisten Websites. Jeder Seitenaufruf löst PHP-Code aus, der Daten aus der Datenbank holt, verarbeitet und als HTML ausliefert. Je schneller dieser Prozess abläuft, desto besser ist die Nutzererfahrung. Zusammen mit gutem Hosting und Caching bildet optimiertes PHP die Grundlage für schnelle Websites.

PHP-Version: Der einfachste Performance-Gewinn

Die wichtigste Maßnahme ist gleichzeitig die einfachste: Nutzen Sie immer die neueste PHP-Version. Jede neue Major-Version bringt erhebliche Performance-Verbesserungen.

PHP-VersionRelative PerformanceStatus
PHP 7.0Basis (2x schneller als PHP 5.6)End of Life
PHP 7.410-15% schneller als 7.0End of Life
PHP 8.05-10% schneller als 7.4 + JITEnd of Life
PHP 8.1Weitere Verbesserungen + FibersSecurity-only
PHP 8.2Optimierte SpeichernutzungAktiv
PHP 8.3Weitere OptimierungenAktiv (empfohlen)

OPcache: Unverzichtbar für jede PHP-Installation

OPcache ist die wichtigste PHP-Erweiterung für Performance. Sie speichert kompilierten PHP-Bytecode im Shared Memory, sodass PHP-Dateien nicht bei jedem Aufruf neu geparst und kompiliert werden müssen. Ohne OPcache verschwendet Ihr Server bei jedem Seitenaufruf wertvolle CPU-Zeit.

OPcache-Konfiguration für Produktion

EinstellungWertErläuterung
opcache.enable1OPcache aktivieren
opcache.memory_consumption256RAM in MB für Cache-Speicher
opcache.interned_strings_buffer32RAM für String-Caching
opcache.max_accelerated_files20000Maximale Anzahl gecachter Dateien
opcache.validate_timestamps0Keine Dateiänderungsprüfung (Produktion)
opcache.save_comments1Für Frameworks die Annotations nutzen
opcache.enable_file_override1Optimiert file_exists und is_file

Beachten Sie: Mit validate_timestamps=0 müssen Sie den OPcache nach Deployments manuell leeren, da Dateiänderungen nicht automatisch erkannt werden. Bei einem Root-Server können Sie dies in Ihr Deployment-Skript integrieren.

PHP-FPM: Der richtige Prozess-Manager

PHP-FPM (FastCGI Process Manager) ist der Standard-Prozess-Manager für PHP in Produktionsumgebungen. Er verwaltet einen Pool von PHP-Worker-Prozessen und bietet bessere Performance und Kontrolle als mod_php oder CGI.

PHP-FPM Pool-Konfiguration

EinstellungBeschreibungEmpfehlung
pmProzess-Manager-Typdynamic (Standard) oder ondemand
pm.max_childrenMaximale Worker-ProzesseRAM / 30MB pro Prozess
pm.start_serversStartanzahl bei dynamic25% von max_children
pm.min_spare_serversMinimale freie Worker25% von max_children
pm.max_spare_serversMaximale freie Worker75% von max_children
pm.max_requestsAnfragen pro Worker bis Neustart500-1000

Berechnung der maximalen Worker

Die Formel für pm.max_children hängt vom verfügbaren RAM ab. Wenn Ihr vServer 4 GB RAM hat und das Betriebssystem sowie die Datenbank 1,5 GB benötigen, bleiben 2,5 GB für PHP. Bei durchschnittlich 30-50 MB pro PHP-Prozess ergibt das 50-80 mögliche Worker.

PHP.ini-Optimierung

Neben OPcache gibt es weitere php.ini-Einstellungen, die die Performance beeinflussen:

EinstellungPerformance-WertHinweis
realpath_cache_size4096kGrößerer Cache für Dateipfade
realpath_cache_ttl600Längere Gültigkeit
output_buffering4096Ausgabe-Pufferung aktivieren
max_execution_time30Langsame Skripte abbrechen
memory_limit256MGenug, aber nicht zu viel
expose_phpOffSicherheit: PHP-Version verbergen
session.save_handlerredisSessions in Redis statt Dateisystem

JIT-Compiler in PHP 8

PHP 8.0 führte einen JIT-Compiler (Just-In-Time) ein, der PHP-Code in nativen Maschinencode übersetzt. Der JIT bringt vor allem bei rechenintensiven Aufgaben Vorteile. Für typische Webanwendungen ist der Effekt geringer, da dort I/O-Operationen (Datenbank, Dateisystem) den Flaschenhals darstellen.

Wann der JIT hilft

  • Mathematische Berechnungen und Algorithmen
  • Bildverarbeitung in PHP
  • Datenkonvertierung und -verarbeitung
  • Rechenintensive API-Endpoints

Wann der JIT wenig bringt

  • Standard-CMS-Websites (WordPress, Joomla) – einen Überblick bietet unser CMS-Vergleich
  • Datenbankintensive Anwendungen
  • Seiten, die hauptsächlich I/O-bound sind

Code-Optimierung: Best Practices

Datenbankabfragen optimieren

  • Prepared Statements verwenden (Performance + Sicherheit)
  • Nur benötigte Spalten abfragen (SELECT * vermeiden)
  • Indizes für häufig abgefragte Spalten erstellen
  • N+1-Query-Probleme vermeiden durch JOINs oder Eager Loading
  • Ergebnisse cachen, wenn sie sich selten ändern

Autoloading optimieren

  • PSR-4-Autoloading statt manueller require-Aufrufe
  • Composer Autoloader mit classmap optimieren: composer dump-autoload --optimize
  • Classmap-Authoritative für Produktion: composer dump-autoload --classmap-authoritative

Allgemeine Code-Tipps

  • Echte String-Funktionen statt Regex, wo möglich (strpos statt preg_match)
  • Arrays effizient nutzen – PHP-Arrays sind Hashmaps
  • Große Dateien mit Generatoren statt Arrays verarbeiten
  • Unnötige Funktionsaufrufe in Schleifen vermeiden
  • Type Declarations nutzen – helfen dem JIT und verhindern Bugs

PHP-Profiling: Flaschenhälse finden

Bevor Sie optimieren, müssen Sie wissen, wo die Zeit verloren geht. Profiling-Tools helfen dabei, die langsamsten Teile Ihres Codes zu identifizieren.

Profiling-Tools

ToolTypEignung
Xdebug ProfilerDetailliertes ProfilingEntwicklung, nicht Produktion
Blackfire.ioSaaS-ProfilerEntwicklung und Produktion
TidewaysAPM + ProfilingProduktion, deutsches Unternehmen
SPXLeichtgewichtiger ProfilerEntwicklung und Produktion

PHP-Performance auf verschiedenen Hosting-Typen

Die Möglichkeiten zur PHP-Optimierung hängen stark vom Hosting-Typ ab:

  • Shared Hosting: Begrenzte Einflussnahme, meist nur PHP-Version wählbar
  • vServer: Volle Kontrolle über PHP-Konfiguration und OPcache
  • Root-Server: Maximale Kontrolle, eigene PHP-Kompilierung möglich

Für ernsthafte PHP-Optimierung benötigen Sie mindestens einen vServer – vergleichen Sie die Hosting-Kosten der verschiedenen Optionen. Unser Guide zur vServer-Konfiguration hilft Ihnen bei der Einrichtung.

Fazit: PHP-Performance ganzheitlich angehen

PHP-Performance-Optimierung beginnt mit der richtigen Version und OPcache-Konfiguration – diese beiden Maßnahmen allein bringen oft 50-200% Verbesserung. Stellen Sie zudem sicher, dass Ihre Website ein SSL-Zertifikat nutzt, um von HTTP/2-Vorteilen zu profitieren. Ergänzen Sie dies mit PHP-FPM-Tuning und Code-Optimierung für weitere Gewinne. Nutzen Sie Profiling, um gezielt die größten Flaschenhälse zu finden. Kombiniert mit Caching, einem CDN und Datenbank-Optimierung erreichen Sie maximale Website-Performance.

Häufig gestellte Fragen

Welche PHP-Version sollte ich verwenden?

Verwenden Sie immer die neueste stabile PHP-Version, derzeit PHP 8.3 oder höher. Jede neue Hauptversion bringt erhebliche Performance-Verbesserungen – PHP 8 ist bis zu dreimal schneller als PHP 7.0. Ältere Versionen erhalten zudem keine Sicherheitsupdates mehr.

Was ist OPcache und wie aktiviere ich es?

OPcache speichert kompilierten PHP-Bytecode im Arbeitsspeicher, sodass PHP-Dateien nicht bei jedem Aufruf neu geparst werden müssen. OPcache ist in PHP standardmäßig enthalten und kann in der php.ini mit opcache.enable=1 aktiviert werden. Der Performancegewinn beträgt typischerweise 50-100 Prozent.

Was ist der Unterschied zwischen PHP-FPM und mod_php?

PHP-FPM (FastCGI Process Manager) verwaltet PHP-Prozesse als eigenständigen Pool, während mod_php direkt im Apache-Webserver läuft. PHP-FPM ist deutlich ressourcenschonender, besser skalierbar und ermöglicht die Kombination mit Nginx als Webserver.

Wie finde ich heraus, welche PHP-Funktionen meine Website verlangsamen?

Nutzen Sie Profiling-Tools wie Xdebug oder Tideways, um die Ausführungszeit einzelner Funktionen zu messen. Das Slow Query Log hilft bei langsamen Datenbankabfragen. Auch das WordPress-Plugin Query Monitor zeigt detaillierte Performance-Informationen für WordPress-Seiten.

Kann ich PHP auf Shared Hosting optimieren?

Auf Shared Hosting sind die Möglichkeiten begrenzt – meist können Sie nur die PHP-Version wählen und einige php.ini-Werte per .htaccess oder Kundenbereich anpassen. Für umfassende PHP-Optimierung wie OPcache-Tuning und PHP-FPM-Konfiguration benötigen Sie mindestens einen vServer.


Weitere Artikel in „Performance & Optimierung“

Website Performance optimieren: So wird Ihre Seite blitzschnell

Website-Performance verbessern: Ladezeiten optimieren, Core Web Vitals erfüllen und Besucher begeist…

Caching-Strategien für Webseiten: Jede Ebene optimal nutzen

Alle Caching-Strategien für schnelle Webseiten: Browser-Cache, Server-Cache, Object-Cache, CDN-Cache…

CDN Grundlagen: Content Delivery Networks für schnellere Websites

Was ist ein CDN? Wie funktioniert es? Vorteile, Nachteile, Anbieter und Einrichtung von Content Deli…

Datenbank-Optimierung: MySQL & MariaDB für maximale Performance

MySQL und MariaDB Performance optimieren: Konfiguration, Indizes, Queries, Buffer Pool und Wartung f…