1. Početna
  2. Hosting
  3. PHP
  4. PHP modul – OPcache

PHP modul – OPcache

OPcache je PHP akcelerator koji implementira opcode keširanje i optimizaciju koda, što ubrzava proces obrade PHP skripti.

Pogledajte šta znači opcode keširanje u članku:Ubrzajte PHP aplikacije pomoću opcode keširanja

OPcache ubrzava generisanje HTML koda, što rezultira ubrzanim učitavanjem veb-sajta. OPcache je PHP modul koji u sistemskoj memoriji snima rezultate kompiliranja PHP koda (bajtkoda). Nakon izvršavanja PHP skripte, PHP interpreter uzima bajtkod direktno iz memorije i izvršava ga. Na ovaj način se štedi resursi i vreme procesora, preskačući korake čitanja i kompiliranja primarnog PHP koda.

OPcache je dodat u PHP kernel u PHP 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) 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 veb-sajt aktivirana nova verzija PHP, na primer PHP 7.3.

OPcache je podržan na svim hosting paketima kod SuperHosting.RS. Može da se aktivira ili deaktivira preko cPanel >> PHP Manager.

Napomena: Tehnologije za keširanje bajtodova 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 na hosting nalogu se vrši preko cPanel kontrolnog panela i alata PHP Manager by SuperhostingPodešavanje PHP modula

Aktivacija OPcache u cPanelu – PHP Manager.

Kako se koristi OPcache na sajtu?

Ako je sajt napravljen sa PHP i OPcache je aktiviran preko PHP Manager u cPanelu, OPcache se koristi automatski od strane PHP interpretera. Nisu potrebne izmene koda ili podešavanja aplikacije.

OPcache status i parametri

Pomoću funkcije phpinfo možete proveriti status OPcache i parametre sa kojima radi.

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

Promena parametara za OPcache

Promena parametara za OPcache može da se izvrši u ini fajlu za module koji su aktivni za PHP verziju koja se koristi. 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 što unesete izmene u direktivama u ovom fajlu, kako bi nove vrednosti stupile na snagu ponovo pokrenite PHP procese preko cPanela >> 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 stvarnoj 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 sa nekim aplikacijama, možda ćete dobiti poruke o grešci ili neispravno funkcionisanje 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. Zatim izvršite testove i provere u radu sajta. Ako nakon deaktivacije modula ne dođe do primetnog kvara veb-sajta, to je pokazatelj da je razlog možda u OPcache i njegovim parametrima. Ovo će zahtevati dublje ispitivanje skupa parametara OPcache 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 sve 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 može da se dobije poruka o grešci ili error 500 prilikom brisanja keša ili drugih izmena na veb-sajtu/ administraciji.

Možete da pokušate 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.

Obnovljen: 27. септембра 2019.

Da li Vam je ovaj članak bio koristan?

Slični članci