OPcache je modul (PHP akcelerator) koji implementira opcode keširanje i optimizaciju koda, što ubrzava proces obrade PHP skripte.
Pogledajte šta znači opcode keširanje u članku:Ubrzajte PHP aplikacije pomoću opcode keširanja
OPcache ubrzava generisanje HTML koda, što vodi do bržeg učitavanja veb-sajta. OPcache je PHP modul koji u sistemskoj memoriji snima rezultate kompilacije PHP koda (bajtkoda). Nakon izvršavanja PHP skripte, PHP interpreter uzima bajtkod direktno iz memorije i izvršava ga. Na ovaj način se štede resursi i procesorsko vreme, preskačući korake čitanja i kompiliranja primarnog PHP koda.
OPcache je dodat u PHP kernel u PHP verziji 5.5. Ovaj modul predstavlja zamenu za nasleđene PHP module kao što su APC (Alternative PHP Cache) i eAccelerator. Za PHP verzije 5.5 i novije (PHP 7.x, 8.x) se preporučuje njegovo aktiviranje. APC i eAccelerator su izostavljeni iz projekata razvoja i podrške. Moguće ih je koristiti za PHP verzije pre 5.5.
Kako se aktivira i deaktivira OPcache?
Aktivacija i deaktivacija OPcache modula na hosting nalogu se vrši preko cPanel kontrolnog panela i alata PHP Manager by Superhosting – Podešavanje PHP modula
Kako se koristi OPcache na sajtu?
Ako je sajt napravljen na PHP-u i OPcache je aktiviran preko PHP Manager u cPanelu, OPcache se koristi automatski od strane PHP interpretera. Nisu potrebne dodatne izmene koda ili podešavanja aplikacije.
OPcache status i parametri
Pomoću funkcije phpinfo možete proveriti status OPcache i parametre sa kojima radi.
Promena parametara za OPcache
Promena parametara za OPcache modul se može izvršiti putem ini fajla za PHP module koji su aktivni za izabranu verziju. Na primer, ako ste omogućili PHP verziju 7.1 za hosting nalog putem PHP Manager, ini fajl php71.ini će se nalaziti u folderu:
/home/cpuser/.sh.phpmanager/php71.d/
cpuser – zamenite sa korisničkim imenom za cPanel;
php71 – zameniti sa PHP verzijom koja je omogućena za nalog/folder, na primer php72;
Nakon izvršenih izmena u ovom fajlu, potrebno je ponovo pokrenuti PHP procese da bi promene stupile na snagu. To možete uraditi preko cPanel-a >> Process Manager by SuperHosting » Okončaj PHP procese.
Parametri i podešavanja za OPcache: Runtime Configuration.
OPcache poruke o grešci
Kada koristite OPcache na nekim aplikacijama ćete možda dobiti poruku o grešci ili neispravnom funkcionisanju veb-sajta.
Da biste na probnoj kopiji veb-sajta utvrdili da li je njen neispravan rad uzrokovan Opcache-om, modul možete deaktivirati preko PHP Manager-a. Zatim izvršite testove i provere u radu sajta. Ako nakon deaktivacije modula ne dođe do primećenog kvara veb-sajta, to je pokazatelj da je razlog možda u OPcache-u i njegovim parametrima. Ovo će zahtevati dublje ispitivanje parametara OPcache-a i njihovu nekompatibilnost sa aplikacijom. Ovu proveru treba da uradi osoba koja je odgovorna za održavanje i razvoj veb-sajta.
U veoma retkim slučajevima, zadata memorija za OPcache možda nije dovoljna.
Možete da proverite parametre:
opcache.memory_consumption = 64
Ako napravite promene u PHP fajlovima i ne vidite promene odmah, možete da proverite sledeća dva parametra:
opcache.validate_timestamps = 1
opcache.revalidate_freq = 0
opcache.validate_timestamps – Kada je ova opcija aktivirana (1) OPcache će obnoviti keš kada bude otkrivena promena u datom fajlu. Kada je skripta dostupna u kešu, OPcache će proveriti stvaran fajl i ako ima promena, zameniće sačuvane informacije o njoj u kešu. Važno je imati na umu da će se zamena svežim i ažurnim informacijama izvršiti nakon postavljenog perioda u sledećoj OPcache opciji (opcache.revalidate_freq).
opcache.revalidate_freq – Kada je ova opcija podešena na 0, OPcache će zameniti podatke keširane datoteke čim otkrije da je originalni fajl izmenjen (opcache.validate_timestamps = 1). Na primer, ako postavite vrednost 300, u roku od 5 minuta nakon što je OPcache otkrio da je originalni fajl izmenjen, informacija u kešu će se osvežiti. Preporučuje se da kada izvršavate promene u PHP fajlovima sajta, da postavite vrednost 0 u toj opciji.
OPcache i greška 500 (Internal Server Error)
Kada je aktiviran OPcache, neke aplikacije kao npr. PrestaShop verzija 1.7.4.3, 1.7.5.1 mogu da izbace poruku o grešci ili error 500 prilikom brisanja keša ili drugih izmena na veb-sajtu/ administraciji.
Možete pokušti da sprečite dobijanje ove greške, proveravajući da li su sledeći parametri podešeni u konfiguraciji OPcache:
opcache.validate_timestamps = 1
opcache.revalidate_freq = 0
opcache.fast_shutdown = 0
Ako nakon promene parametara i dalje budete dobijali poruku o grešci, biće potrebna dodatna provera.