OPcache: Nenápadná technologie, která dokáže zrychlit PHP weby

20. října 2026
•

Pomalý web nemusí vždy potřebovat výkonnější server. Část času může PHP při každém požadavku ztrácet opakovaným načítáním a přípravou stejných skriptů. OPcache tento krok omezuje tím, že si jejich přeloženou podobu ukládá do paměti. Jak funguje a co zkontrolovat, aby skutečně pomáhal?

Co se děje, když PHP zpracovává stránku

Když návštěvník otevře stránku, webový server předá požadavek PHP. To načte potřebné skripty, převede jejich kód na instrukce pro Zend Engine a spustí je. Aplikace může například načíst data z databáze a sestavit výsledné HTML, píše web PHP.

Při dalších požadavcích se příprava stejných souborů bez OPcache opakuje. OPcache si proto uloží připravené instrukce do paměti. PHP je pak může znovu použít a ušetřit čas načítáním a parsováním skriptů. Samotný kód ale dál vykonává a stránku při každém požadavku sestavuje.

OPcache není cache celé stránky

Slovo cache označuje různé způsoby, jak zrychlit web. OPcache ukládá připravené instrukce PHP skriptů, ne hotové HTML. PHP proto při každém požadavku stále vykoná kód aplikace a sestaví stránku. Nemusí však znovu načítat a parsovat každý skript.

Jiné typy cache ukládají jiná data:

  • Cache stránky uchovává hotové HTML, které lze návštěvníkovi poslat bez opětovného sestavení celé stránky.
  • Objektová cache uchovává často používaná data nebo výsledky operací, například data načtená z databáze.
  • Cache prohlížeče nebo CDN může ukládat obrázky, styly, skripty a další soubory, aby se nemusely znovu stahovat z původního serveru.

Tyto vrstvy se mohou doplňovat. OPcache zrychluje přípravu PHP kódu, zatímco ostatní cache omezují opakované generování obsahu nebo přenos souborů.

Kdy může zrychlení pomoci

Přínos OPcache bývá největší u webů, které při běžném provozu opakovaně spouštějí stejné PHP soubory. Může omezit režii při jejich načítání a kompilaci, takže PHP věnuje více prostředků samotnému zpracování požadavku.

Výsledek závisí na konkrétním webu. Záleží například na množství PHP kódu, jeho nastavení, dalších úzkých místech a celkovém vytížení serveru. Samotné zapnutí OPcache proto nezaručuje konkrétní zrychlení ani nevyřeší problém, který vzniká jinde.

Jak zjistit, jestli je OPcache zapnutá

OPcache bývá součástí PHP, ale její dostupnost a konfigurace se mohou lišit podle serveru a způsobu spuštění PHP. Správce serveru ji může ověřit například ve výpisu konfigurace PHP nebo pomocí funkce opcache_get_status(). Ta vrací informace o stavu paměťové cache, například zda je zapnutá, zda je plná a kolik paměti využívá.

Na sdíleném hostingu nemusí mít uživatel přístup ke všem nastavením. V takovém případě je nejjednodušší obrátit se na poskytovatele hostingu. Při kontrole je důležité ověřit konfiguraci PHP, kterou používá webový server. Nastavení pro příkazovou řádku se může lišit od nastavení PHP obsluhujícího web.

Pokud správce používá phpinfo(), měl by výpis po kontrole zabezpečit nebo odstranit. Veřejně dostupná stránka s podrobnými informacemi o konfiguraci může prozrazovat zbytečné detaily o serveru.

Na co si dát pozor při nastavení

OPcache má několik konfiguračních direktiv. Jejich vhodné hodnoty závisí na velikosti aplikace i způsobu nasazování. Mezi důležité patří:

  • opcache.enable zapíná nebo vypíná opcode cache.
  • opcache.memory_consumption určuje velikost sdílené paměti pro cache.
  • opcache.max_accelerated_files nastavuje limit počtu souborů, které může cache uchovávat.
  • opcache.validate_timestamps určuje, zda PHP kontroluje změny souborů.
  • opcache.revalidate_freq nastavuje, jak často se při zapnuté kontrole ověřují časové značky souborů.

Oficiální dokumentace uvádí, že při vypnutém opcache.validate_timestamps PHP změny souborů automaticky nezjistí. Po nasazení nové verze webu proto může být nutné cache obnovit nebo restartovat PHP procesy. Při nastavení kontroly časových značek je zase třeba počítat s tím, že změna se nemusí projevit okamžitě: závisí také na hodnotě opcache.revalidate_freq.

Není dobré bez rozmyslu přebírat hodnoty z cizího php.ini. Příliš malá paměť nebo nízký limit souborů mohou znamenat, že se do cache nevejde potřebná část aplikace. Naopak zvyšovat hodnoty „pro jistotu“ nemusí přinést žádný užitek. Správce by měl sledovat stav cache a upravovat konfiguraci podle skutečného využití.

Pozor také na experimentální či aplikačně citlivé volby. PHP například upozorňuje, že vypnutí ukládání dokumentačních komentářů může rozbít aplikace, které z komentářů čtou anotace.

Jak ověřit, že změna pomohla

Než se začne s laděním, je vhodné zaznamenat výchozí stav. Poté lze porovnat dobu odezvy serveru a chování webu před zapnutím OPcache a po něm. Měření je potřeba provádět za srovnatelných podmínek a opakovat ho. Výsledek může ovlivnit vytížení serveru, databáze i další cache.

Pokud se web ani po zapnutí nezrychlí, neznamená to automaticky, že OPcache nefunguje. Možná už PHP nebylo hlavním úzkým místem. Další kontrola by se měla zaměřit například na pomalé databázové dotazy, náročné pluginy, externí služby nebo dlouhé operace při generování stránky.

Malá vrstva, která pracuje na pozadí

OPcache neukládá hotový web pro návštěvníky. Zrychluje opakované zpracování PHP skriptů tím, že omezuje jejich opakované načítání a parsování. Na správně nastaveném serveru tak může být užitečnou součástí optimalizace.

Nejlepší výsledky přinese jako součást širší péče o výkon: společně s měřením, kontrolou databáze a vhodným využitím dalších cache. Pokud hledáte zázemí pro svůj web, podívejte se na WordPress hosting od CZECHIA.COM nebo na Cloud Server VPS od ZonerCloudu. Výběr záleží na tom, zda chcete spravovaný hosting, nebo vlastní server s větší kontrolou nad prostředím.

Petra Bauerová

Novinářka a marketingová specialistka, která má ráda technologie, videohry, umělou inteligenci, knihy a cestování.

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *