Vorhaben besprechen

Lexikon

OPcache

OPcache ist die in PHP integrierte Erweiterung, die vorkompilierten Bytecode von PHP-Skripten im gemeinsamen Arbeitsspeicher ablegt. PHP muss Skripte dadurch nicht bei jeder Anfrage neu laden und übersetzen, was Antwortzeiten und Serverlast senkt.

25. Oktober 2026OPcachePHPPerformanceBetrieb

Bevor PHP ein Skript ausführt, liest es den Quelltext, zerlegt ihn und übersetzt ihn in sogenannte Opcodes, also Befehle für die PHP-Laufzeit. Ohne Zwischenspeicher wiederholt sich das bei jeder Anfrage, obwohl sich der Code meist nicht geändert hat. OPcache, ausgeschrieben Opcode Cache, speichert das Ergebnis im Arbeitsspeicher und spart diese Arbeit. Laut PHP-Handbuch ist die Erweiterung seit PHP 5.5.0 Bestandteil von PHP. In produktiven Umgebungen gehört sie zur Grundausstattung.

Wie OPcache funktioniert

Wichtige Einstellungen

Die Standardwerte laut PHP-Handbuch, alle Einstellungen beginnen mit dem Präfix opcache.:

Große Anwendungen mit vielen Bibliotheken, etwa auf Basis von Laravel, brauchen oft mehr Speicher und einen höheren Wert für die Zahl der Skripte. Ob die Werte passen, zeigt die Funktion opcache_get_status(): Ist der Speicher voll oder sinkt die Trefferquote, arbeitet der Zwischenspeicher nicht wie gewünscht.

Praxis: OPcache und Deployments

Viele Teams schalten im Produktivbetrieb opcache.validate_timestamps ab, um die Dateiprüfung einzusparen. Das PHP-Handbuch weist darauf hin, dass OPcache Änderungen dann nicht mehr erkennt. Nach jedem Deployment muss der Zwischenspeicher mit opcache_reset() geleert oder der PHP-Dienst neu geladen werden. Fehlt dieser Schritt in der CI/CD-Pipeline, liefert der Server weiter den alten Code aus, teilweise gemischt mit neuen Dateien.

Eine gängige Vorgehensweise ist, neue Versionen in ein eigenes Verzeichnis auszurollen, den Verweis darauf umzuschalten und anschließend PHP-FPM geordnet neu zu laden. So wechseln alle Prozesse gemeinsam auf den neuen Stand, und der Weg zurück auf die vorige Version bleibt offen.

Typische Fehlerbilder

Sicherheit

Abgrenzung

OPcache speichert übersetzten Programmcode. Daten-Caches wie APCu oder Redis speichern dagegen Ergebnisse, etwa Datenbankabfragen. Seiten-Caches und Content Delivery Networks liefern ganze Antworten aus, ohne dass PHP überhaupt läuft. Die Ebenen ergänzen sich. Wie gut das Zusammenspiel funktioniert, zeigt ein IT-Monitoring mit Antwortzeiten und Fehlerraten.

Häufige Fragen

Wie erkenne ich, ob OPcache aktiv ist?

Am zuverlässigsten über opcache_get_status() in einer geschützten Diagnoseseite oder über die Statusausgabe des Monitorings. Achtung: Für die Kommandozeile ist OPcache standardmäßig ausgeschaltet (opcache.enable_cli steht auf 0). Ein Aufruf von php -i in der Shell zeigt deshalb nicht unbedingt den Zustand des Webservers.

Soll ich den JIT einschalten?

Nur nach Messung. Der JIT übersetzt Code zusätzlich in Maschinencode und hilft vor allem bei rechenintensiven Aufgaben. Viele Webanwendungen verbringen ihre Zeit dagegen mit Datenbankabfragen und Netzwerkzugriffen. Seit PHP 8.4 muss der JIT ausdrücklich aktiviert werden.

Muss ich OPcache nach jedem Update leeren?

Wenn opcache.validate_timestamps aktiv ist, erkennt OPcache geänderte Dateien nach kurzer Zeit selbst. Ist die Prüfung abgeschaltet, gehört das Leeren oder Neuladen fest in jedes Deployment.

Quellen

Softwareentwicklung ansehen

WEITER IM LEXIKON

Verwandte Begriffe

Mehr aus Softwareentwicklung

Alle Begriffe im Lexikon

IHR NÄCHSTER SCHRITT

Was soll als
Nächstes besser
funktionieren?

Beschreiben Sie kurz Ihr Vorhaben. Wir ordnen ein und schlagen einen sinnvollen nächsten Schritt vor.