registracija-domene.info
  • Početna
  • Domene
  • .hr domene
  • Transfer domene
  • Hosting
  • SSL
  • Kontakt
  • AI

Korisni linkovi

  • Nagradni bodovi za domene
  • Besplatan hosting za domenu
  • Transfer domene
  • Web jumbo plakat
  • IZHR - RENT-A-PORTAL
  • AKCIJA 1+1
    Super Brza Podrška

PHP OPcache konfiguracija — preloading, JIT i monitoring u produkciji

  • DOMENE
  • Upute
  • PHP OPcache konfiguracija — preloading, JIT i monitoring u produkciji

PHP OPcache konfiguracija — preloading, JIT i monitoring u produkciji

OPcache je ugrađeni PHP bytecode cache — najveća pojedinačna performansna razlika koju možete dobiti na PHP aplikaciji, besplatno, bez ijedne promjene u kodu. Ova uputa pokazuje kako ga dobro konfigurirati na produkciji, uključujući preloading i JIT za PHP 8.x.

1. Što OPcache zapravo radi

Bez OPcache-a PHP pri svakom zahtjevu parsira PHP fileove i prevodi ih u bytecode. OPcache taj bytecode drži u RAM-u i ponovno koristi dok god se fileovi ne promijene. Rezultat: 2-5× brži response, manji CPU, manji I/O.

2. Provjeri je li uopće uključen

Kreirajte info.php:

<?php phpinfo();

Potražite sekciju "Zend OPcache". Ako je nema, instalirajte ekstenziju. Na cPanel-u: Software → Select PHP Version → Extensions → označite opcache.

Ili preko CLI: php -m | grep -i opcache.

3. Preporučena konfiguracija za produkciju

Uredite odgovarajući php.ini ili 99-opcache.ini:

[opcache]
opcache.enable = 1
opcache.enable_cli = 0

; veličina keša — veći projekti trebaju više
opcache.memory_consumption = 256         ; MB
opcache.interned_strings_buffer = 16     ; MB

; koliko PHP fileova može keširati
opcache.max_accelerated_files = 20000

; koliko često provjerava promjene — produkcija 0, staging 2
opcache.validate_timestamps = 0
opcache.revalidate_freq = 0

; optimizacije
opcache.save_comments = 1                ; Craft/Laravel traže komentare
opcache.fast_shutdown = 1
opcache.enable_file_override = 0

; JIT (PHP 8.0+) — za CPU-heavy kod
opcache.jit = 1255
opcache.jit_buffer_size = 128M

; za CLI workere (Laravel queue, artisan)
opcache.enable_cli = 1                   ; ako koristite long-running workere

Što znači validate_timestamps = 0

OPcache ne provjerava jesu li se fileovi na disku promijenili. Nakon deploya morate ručno resetirati cache:

# preko CLI
php -r 'opcache_reset();'

# ili kroz web skriptu (obrisati nakon upotrebe!)
<?php opcache_reset(); ?>

# ili restart PHP-FPM
systemctl restart php-fpm

U deploy skripti (Capistrano, Deployer, GitHub Actions) dodajte korak koji restarta FPM ili zove opcache_reset().

Ako želite auto-reload nakon deploy-a bez restart-a

Postavite validate_timestamps = 1 i revalidate_freq = 60. OPcache će svakih 60s provjeriti timestamp i reloadati promijenjene fileove. Malo sporiji nego manual reset, ali puno jednostavniji.

4. Preloading (PHP 7.4+)

Preload učitava PHP fileove u memoriju pri startu FPM-a — dostupni su svim zahtjevima bez ponovnog parsiranja. Radi čuda za framework code (Laravel, Symfony).

; u php.ini
opcache.preload = /var/www/preload.php
opcache.preload_user = www-data

Primjer /var/www/preload.php (Laravel):

<?php
$files = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator('/var/www/app/vendor/laravel/framework/src')
);
foreach ($files as $file) {
    if ($file->isFile() && substr($file->getFilename(), -4) === '.php') {
        opcache_compile_file($file->getRealPath());
    }
}

Nakon svakog deploya treba restart FPM-a da preload učita novu verziju.

5. JIT (PHP 8.0+)

Just-In-Time kompajler — prevodi hot code u native strojni kod. Koristan za:

  • Matematičke / CPU-heavy operacije.
  • Long-running workere.
  • Image processing, cryptography, compilation.

Manje korisno za klasične web requeste gdje je >80% vremena u bazi i I/O-u. Postavke opcache.jit = tracing i opcache.jit_buffer_size = 128M su dobar početak.

Ako nakon aktivacije JIT-a primijetite segfault-ove ili čudne greške, isključite ga (opcache.jit = off) — i dalje ima slučajeva regresija.

6. Monitoring OPcache-a

Korisne metrike dostupne preko opcache_get_status():

<?php print_r(opcache_get_status(false));

Što gledati:

  • memory_usage.used_memory vs free_memory — ako je free ispod 10%, povećaj memory_consumption.
  • opcache_statistics.opcache_hit_rate — cilj >99%.
  • opcache_statistics.num_cached_scripts — ako je blizu max_accelerated_files, povećaj limit.
  • opcache_statistics.oom_restarts — >0 znači da je cache pun i restartao se. Povećaj memory.

Vizualni alati: opcache-gui (github.com/amnuts/opcache-gui) ili opcache-status.

7. Tipične greške i simptomi

"Changes don't appear after deploy"

validate_timestamps = 0 a nema reseta u deploy skripti. Dodajte.

"Random 500 errors after deploy"

OPcache drži stari bytecode u kombinaciji s novim fileovima. Uvijek restart FPM-a ili opcache_reset() nakon deploya, nikad parcijalno.

"OOM restart" u statusu

Cache pun, OPcache radi full flush. Povećaj memory_consumption.

"Preload failed: could not load..."

Preload skripta ima greške ili referira na nepostojeće fileove. Testirajte php preload.php ručno.

8. Kontrolna lista za produkciju

  1. OPcache uključen i barem 256MB allocated.
  2. validate_timestamps = 0 s reset-om u deploy pipelineu.
  3. save_comments = 1 (obavezno za Craft, Laravel, većinu modernog PHP-a).
  4. Monitoring metrika u dnevnom pregledu (hit rate, free memory).
  5. Preload uključen za framework fileove.
  6. JIT na tracing s 128M buffera za hot code paths (ili isključen ako ima problema).

Dobro podešen OPcache često donese veći performansni skok nego upgrade hardwarea. Ako na vašem projektu nije konfiguriran ili sumnjate da nije optimalno postavljen — javite se, napravimo audit.

  Monitoring resursa u cPanelu — kako čitati CPU, RAM, I/O i inode brojke
SSH sigurnost — ključevi, chroot jail, fail2ban i 2FA  
  Upute
Kategorije - Upute
  • Za nove korisnike (1)
  • Najčešća pitanja (118)
    • Domene (26)
    • Hosting (22)
    • SSL Certifikati (9)
    • Dedicirani serveri (6)
    • Izrada web stranica (7)
    • Izrada web trgovine (4)
    • SEO Marketing (6)
    • Web jumbo plakat (0)
    • Internet oglašavanje (9)
    • PDF dokementi na listanje (0)
    • IZHR - Najam portala (17)
    • Pitanja prije kupnje (0)
    • PDF dokumenti na listanje (11)
  • cPanel (40)
    • WebMail (4)
    • FTP (4)
    • PHP (1)
    • Restore / Backup (4)
      • JetBackup (3)
    • MySQL baze podataka (3)
  • CMS (9)
    • Wordpress (9)
    • Joomla (0)
    • Skripte i programi (0)
  • Korisničke stranice (7)
    • Nagradni bodovi (1)
  • Ostalo (6)
  • E-mail (19)
HOSTING AKCIJA 1+1

Možda će vas zanimati

Miloc d.o.o.
Viking d.o.o.
prevođenje
završni radovi u graditeljstvu
uporaba kanabisa
duhovni centar
katolički vjerski odgoj
romi portal
Kategorije - Upute
  • Za nove korisnike (1)
  • Najčešća pitanja (118)
    • Domene (26)
    • Hosting (22)
    • SSL Certifikati (9)
    • Dedicirani serveri (6)
    • Izrada web stranica (7)
    • Izrada web trgovine (4)
    • SEO Marketing (6)
    • Web jumbo plakat (0)
    • Internet oglašavanje (9)
    • PDF dokementi na listanje (0)
    • IZHR - Najam portala (17)
    • Pitanja prije kupnje (0)
    • PDF dokumenti na listanje (11)
  • cPanel (40)
    • WebMail (4)
    • FTP (4)
    • PHP (1)
    • Restore / Backup (4)
      • JetBackup (3)
    • MySQL baze podataka (3)
  • CMS (9)
    • Wordpress (9)
    • Joomla (0)
    • Skripte i programi (0)
  • Korisničke stranice (7)
    • Nagradni bodovi (1)
  • Ostalo (6)
  • E-mail (19)
HOSTING AKCIJA 1+1
CMS izradite sami web stranicu
400+ web skripti na klik
CMS, Shop, Blog... automatska instalacija na 1 klik

Probni period
7 dana

Domena aktivna
za 5 minuta

PHP OPcache konfiguracija — preloading, JIT i monitoring u produkciji

  • DOMENE
  • Upute
  • PHP OPcache konfiguracija — preloading, JIT i monitoring u produkciji
registracija-domene.info


Misija nam je olakšati život 
web programerima, malim i velikim tvrtkama. 
Svoje usluge pružamo na vrhunskoj tehnologiji 
i imamo 24/7/365 WMD - Super brzu podršku.

 

Domene

Registracija domene

Registracija besplatne .hr domene

Transfer domene

Pitanja i odgovori

Provjera domene

Cijene / Cjenik domena

Hosting

Hosting Akcija

Wordpress Hosting

CRAFTCMS Hosting

Samostalna izrada web stranica

Linux / cPanel hosting

Cijena / Cjenik hostinga

Hosting Akcija 1+1

Serveri

Dedicirani serveri

Reseller hosting serveri

Mail serveri

Cloudbox - Mrežni disk

Cijena / Cjenik servera

Serveri u Hrvatskoj / EU

SSL certifikati

SSL certifikati

SSL - Pitanja i odgovori

Cijene / Cjenik - SSL certifikata

registracija-domene.info
Usluge

Izrada CMS web stranica

Izrada web trgovine

SEO Marketing

PR OBJAVE na 130+ portala

Dnevni tisak - Online platforma

Online PDF dokumenti na listanje

Web jumbo plakat

IZHR - RENT-A-PORTAL

Korisnička podrška

WMD - Super brza podrška

Baza znanja

Najčešća pitanja

Pomoć E-mail

Računi PDF orginal

Info o uslugama

Korisni linkovi

Nagradni bodovi

Poklon bon

Besplatan hosting

Reference

Korisnici o nama

Pravne informacije

Uvijeti korištenja usluga

Podaci za plaćanje

GDPR

Report Abuse

04.06.2026 © WMD Hosting - All Rights Reserved

Izrada web stranica | CMS | Hosting AKCIJA 1+1 | SEO