1. Home
  2. Hosting
  3. PHP
  4. PHP modul – OPcache

PHP modul – OPcache

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.

Optimalno ubrzanje pomoću OPcache se može dobiti kada je na veb-sajtu aktivirana nova PHP verzija (7.x, 8.x).

OPcache je podržan na svim hosting paketima kod SuperHosting.RS. Može se aktivirati ili deaktivirati preko cPanel-a >> PHP Manager.

Napomena: Tehnologije za keširanje bajtoda kao što su OPcache i tehnologije keširanja podataka kao što su Memcached i Redis imaju drugačiju svrhu i nezavisne su jedna od druge. OPcache ubrzava pristup i izvršenje koda, dok Memcached i Redis ubrzavaju pristup podacima (page cache, database cache, object cache). Obe vrste keširanja mogu da rade istovremeno i čak se i preporučuje njihova aktivacija kako bi se ubrzalo učitavanje veb-sajta.

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 SuperhostingPodešavanje PHP modula

Aktivacija PHP modula opcache putem menija PHP Manager by SuperHosting
Aktivacija OPcache u cPanelu – PHP Manager.

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.

Provera OPcache modula
OPcache je uspešno pokrenut i radi, ima 984 hita u kešu i 208 keširanih skripti.
Parametri od OPcache.
Provera OPcache parametara
Parametri za OPcache.

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.

Važno: Ne zaustavljajte trenutne PHP procese na realnom veb-sajtu, to se mora izvršiti na probnoj kopiji veb-sajta. Ponovno pokretanje PHP procesa na realnoj radnoj stranici može dovesti do gubitka informacija. Na primer, ako posetilac trenutno ima sesiju i izvršava porudžbinu na sajtu, njegovi podaci mogu biti izgubljeni i porudžbina može biti ukinuta.

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.

Važno: Promena podešavanja OPcache, njegovo aktiviranje i deaktiviranje je preporučljivo izvršavati na probnoj kopiji veb-sajta. Ne vršite promene direktno u podešavanjima stvarnog veb-sajta jer to može dovesti do gubitka podataka ili prouzrokovati neispravnost 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

Važno: Optimalna memorija za OPcache je 64 ili 128 u veoma retkim slučajevima treba da se dodeli više memorije. Ne treba postaviti previsoku vrednost za ovaj parametar (preko 128), zato što će potrošiti memoriju hosting naloga i aplikacije na njemu neće moći da funkcionišu.

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.

Updated on 9. August 2022.

Was this article helpful?

Related Articles