OPcache ist eine in PHP integrierte Bytecode-Caching-Erweiterung, die die Leistung von PHP-Anwendungen deutlich verbessert, indem sie den PHP-Code vorkompiliert und im Arbeitsspeicher (RAM) speichert.
Normalerweise passiert bei jedem PHP-Aufruf:
PHP liest den Quellcode (*.php-Datei)
Der Code wird geparst und in Bytecode umgewandelt
Der Bytecode wird vom PHP-Interpreter ausgeführt
Mit OPcache passiert dieser Vorgang nur einmal. Danach wird der bereits kompilierte Bytecode aus dem Speicher genommen und direkt ausgeführt.
Vorteil | Beschreibung |
---|---|
⚡ Schneller | Spart sich das erneute Parsen und Kompilieren bei jedem Request |
🧠 Weniger CPU-Last | Mehr Leistung, besonders bei hoher Last |
💾 In-Memory-Caching | Kein Festplattenzugriff auf PHP-Dateien |
🛡️ Sicherer & stabiler | Reduziert Risiko durch schlecht geschriebene Autoloader oder dynamischen Code |
php -i | grep opcache.enable
Oder im Code:
phpinfo();
📦 Typische Konfiguration (php.ini)
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.validate_timestamps=1
opcache.revalidate_freq=2
💡 In Produktionsumgebungen wird oft
opcache.validate_timestamps=0
gesetzt – das bedeutet: PHP prüft nicht mehr bei jedem Request, ob sich Dateien geändert haben → noch mehr Performance, aber Änderungen erfordern dann z. B. einen Cache-Reset oder Neustart.
OPcache bringt besonders viel bei:
Du kannst OPcache z. B. in einem Deployment-Tool mit folgendem Befehl leeren:
opcache_reset();
Oder über die Kommandozeile:
php -r "opcache_reset();"
OPcache ist ein einfacher, aber extrem effektiver Performance-Booster für jede PHP-Anwendung. Er sollte in jeder produktiven Umgebung aktiviert sein – es ist kostenlos, nativ in PHP enthalten und reduziert Ladezeiten sowie Serverlast drastisch.