Vad är OPcache?
OPcache är en PHP-opcode cache, vilket innebär att det lagrar resultatet av kompilerade PHP-skript i minnet, så att PHP-tolkaren inte behöver läsa och tolka filerna från början varje gång de körs.
Med andra ord: OPcache “kompilerar” dina PHP-filer en gång och återanvänder bytekoden, vilket ger snabbare exekvering och mindre CPU-belastning.
⚙️ Hur fungerar OPcache i praktiken?
- En användare begär en PHP-sida (t.ex. index.php).
- PHP-tolkaren kompilerar filen till opcodes (bytekod).
- Istället för att kompilera varje gång, lagrar OPcache denna bytekod i RAM.
- Vid nästa förfrågan återanvänds den redan kompilerade versionen.
Detta sker helt i bakgrunden och transparent för både användare och utvecklare – men ger ofta en stor prestandaskillnad, särskilt på sidor med mycket PHP-logik.
Hur aktiverar man OPcache?
OPcache är aktiverat som standard på våra servrar och används som standar.
För att se om det är aktivt kan du köra:
php -i | grep opcache
Eller skapa en PHP-fil med phpinfo();.
<?php
phpinfo();
Hur förhåller sig OPcache till Apache, Redis och Memcached?
Teknologi |
Funktion |
Typ av cache |
Lagringsplats |
Exempel på användning |
---|---|---|---|---|
OPcache |
Cacher kompilerad PHP-bytekod |
Opcode-cache |
RAM |
Snabbar upp PHP-exekvering |
Redis |
Cacher objekt/data-strukturer |
Objekt-/nyckelvärdescache |
RAM |
Cacha sessions, transients, WooCommerce-data |
Memcached |
Lik Redis, enklare och snabbare |
Nyckelvärdescache |
RAM |
Objektcache i WordPress, API-cache |
Apache |
Webserver |
– |
– |
Levererar sidor, integrerar med PHP via mod_php eller PHP-FPM |
Varnish / FastCGI cache |
Cacher HTML-respons |
Full page cache |
RAM/disk |
Server-side page cache |
De fyller alltså olika roller i prestandastacken:
- OPcache → effektiv PHP-körning
- Redis/Memcached → snabb åtkomst till dynamisk data (t.ex. WordPress-transients)
- Server-side cache (FastCGI/Varnish) → caching av HTML-output
- Browser cache / CDN / Cache-plugins → ytterligare lager längre ut i kedjan
När gör OPcache mest nytta?
- Sajter med många PHP-requests (WordPress, WooCommerce, Laravel etc)
- Sajter med delad kodbas men mycket trafik (t.ex. multisite)
- Hostingmiljöer där CPU är flaskhals
- Där man inte ändrar kod ofta (undantag: utvecklingsmiljöer)