Otvaraš sajt i umjesto stranice vidiš ili "500 Internal Server Error" ili — još gore — potpuno bijelu stranicu bez ikakve poruke. Oba su simptomi istog tipa problema: PHP je puknuo, ali na različite načine. Ovaj post je kompletan recovery guide kroz 12 koraka — od najvjerojatnijih do najtežih uzroka.
Što razlikuje 500 od WSOD
500 Internal Server Error je generički server status koji znači "nešto je puknulo u tvom PHP kodu, ali ne znam što". Server vraća stranicu sa porukom error 500.
White Screen of Death (WSOD) = potpuno bijela stranica bez ikakvog content-a. PHP je crash-ao tako rano da nije ni izgovorio error message. Najgore za debugging jer nemaš trag.
Praktično: oba indiciraju da PHP nije pravilno izvršen. Razlikuju se po tome koliko je daleko stigao prije crash-a.
Korak 1: Uključi WP debug mode (najvažniji korak)
Bez debug mod-a, debug-aš na slijepo. Edit wp-config.php i dodaj:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
Učitaj sajt. Ako WSOD perzistira, otvori wp-content/debug.log — sada vidiš stvarni PHP error koji uzrokuje problem.
Tipične poruke koje vidiš:
Fatal error: Allowed memory size of X bytes exhausted→ memorijaFatal error: Maximum execution time exceeded→ timeoutParse error: syntax error, unexpected '...'→ koruptiran PHP file (najčešće nakon update-a)Fatal error: Class 'X' not found→ missing plugin/libraryFatal error: Cannot redeclare function X()→ plugin conflict
Korak 2: Provjeri error_log u cPanel-u
cPanel → Metrics → Errors. Vidi se zadnjih 300 PHP greški. Često vidiš jasan stack trace.
Ili preko SSH:
tail -100 ~/public_html/error_log
tail -100 ~/logs/error_log
Korak 3: Memory exhaustion fix
Ako vidiš "memory size exhausted" — povećaj memory_limit. Edit wp-config.php:
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
Ili u .user.ini:
memory_limit = 256M
Restart PHP-FPM (cPanel → Select PHP Version → Reset PHP) da promjena uđe.
Korak 4: Plugin u beskonačnoj petlji / plugin conflict
Najčešći single uzrok i 500 i WSOD. Plugin update razbio kompatibilnost s drugim plugin-om ili WordPress core-om.
Recovery flow:
- Spoji se preko FTP/SFTP ili cPanel File Managera
- Idi u
wp-content/ - Preimenuj folder
pluginsuplugins-OFF - Učitaj sajt. Ako sad radi (ali bez pluginova), problem je u jednom od pluginova.
- Preimenuj nazad u
plugins - Idi u
plugins, preimenuj jedan plugin-folder po jedan (npr.wp-rocket→wp-rocket-OFF) - Učitaj sajt nakon svake promjene. Kada se sajt vrati u rad — našao si krivca.
Ako ne možeš preko FTP-a, koristi cPanel File Manager. Isti princip.
Korak 5: Tema razbila sajt
Update teme ili promjena teme može razbiti sajt. WordPress ima ugrađen fallback ako aktivna tema nedostaje — fallback-a na zadnju default temu (Twenty Twenty-Four ili similar).
Recovery:
- Preko FTP idi u
wp-content/themes/ - Preimenuj folder aktivne teme (npr.
moja-tema→moja-tema-OFF) - WordPress automatski prebaci na default temu
- Sajt sad učitava
- Otvori wp-admin, instaliraj ili re-install temu, provjeri šta je pucalo
Korak 6: Koruptiran WordPress core
Update WordPress core-a pukao mid-way → koruptirani fileovi. Tipično nakon update-a koji je padao u disk full situaciji.
Fix:
- Download fresh WordPress sa wordpress.org
- Unzip lokalno
- Preko FTP/cPanel File Manager, prepiši samo
wp-includes/iwp-admin/folder-e - NEMOJ dirati
wp-content/iliwp-config.php - Učitaj sajt — ako su core fileovi bili problem, sad radi
Korak 7: .htaccess razbijen
Loš redirect rule, mod_rewrite syntax greška, ili neki novi rule koji je razbio cijeli .htaccess.
Fix:
- Preimenuj
.htaccessu.htaccess-OFF - Učitaj sajt. Ako sad radi — problem je u .htaccess pravilima.
- Vrati .htaccess s default WordPress sadržajem (Settings → Permalinks → Save resetuje .htaccess)
Korak 8: PHP verzija inkompatibilna
Update PHP verzije s 7.4 na 8.x. Stari pluginovi koji koriste deprecated functions padaju. Sajt vidi WSOD ili 500.
Fix:
- cPanel → Select PHP Version → vrati na prethodnu verziju (npr. s 8.3 nazad na 8.1)
- Sajt radi → identificiraj koji plugin/tema nije kompatibilan
- Update problematični plugin na verziju koja podržava novi PHP
- Ili migriraj na novi plugin (npr. zamijeni stari security plugin sa Wordfence)
- Tek tada vrati novu PHP verziju
Korak 9: Disk pun
Ako je disk space dosegnut, WordPress ne može pisati u cache, log, ili upload folder. Sajt padne sa 500 ili WSOD.
Provjera: cPanel → Statistics → Disk Usage. Ako je 95%+ → problem.
Fix:
- Briši stare backup-e
- Briši
error_logfile (često bude GB-evi) - Clear
wp-content/cache/ - Provjeri da li email accountovi rastu nekontrolirano
- Ako i dalje pun → vrijeme za veći paket
Korak 10: Database connection error
Ako vidiš "Error establishing a database connection" — to je specifičan tip WSOD-a. Sajt ne može doseći MariaDB.
Uzroci:
- Krivi DB credentials u
wp-config.php(nakon migracije) - MariaDB server je down
- Sajt je premašio max_connections limit
- DB user permissions broken
Fix: provjeri DB credentials, kontaktiraj support ako MariaDB ne odgovara.
Korak 11: Tek poslije svega — vraćanje backup-a
Ako prvih 10 koraka ne pomažu, vrati backup od jutros ili od prije zadnjeg update-a. Na WMD-u kroz JetBackup u 5 minuta.
Backup je safety net, ne first response. Korake 1-10 trebaš proći prvo jer:
- Backup briše bilo koji content kreiran nakon backup vremena
- Backup ne riješava root cause — ako je problem u plugin update-u, isti će se ponoviti
- Backup je dragocjen — ne troši ga nepotrebno
Korak 12: Ako sve padne — eskalacija
Probao si 11 koraka, sajt još uvijek WSOD ili 500? To je rijetko ali se događa. Tipično znači:
- Server-level problem (PHP-FPM corrupted, libraries missing)
- Filesystem korupcija
- cPanel/CloudLinux LVE config problem
- Hardware issue
Kontaktiraj support s:
- Lista što si već probao
- Screenshot error stranice
- Zadnjih 100 linija error_log-a
- Vrijeme početka problema
WMD recovery process
Na WMD upravljanim paketima:
- Monitoring vidi pojavu 500/WSOD obično u prvih 5 minuta
- Auto-restart PHP-FPM ako pukne
- Diagnostic flow radimo automatski — error_log analiza, plugin check, disk/memory check
- JetBackup s restore-on-demand — restore u 5-10 minuta ako treba
- Imunify360 sprečava ransomware/malware kao uzrok korupcije
- 24/7/365 hrvatski support — tipičan response 5-15 minuta od JavLja
Prevencija 500/WSOD
- Staging environment — testiraj updates prije production-a
- Backup prije svake izmjene — 5 minuta priprema spasi 5 sati panike
- Memory_limit 256M minimum za WP, 512M za WooCommerce
- WP-Cron na sistemskom cron-u (ne WP default)
- Aktivni WP debug mode na staging-u da odmah vidiš issue prije nego dođe do production
- Sluša WordPress update notifications i čekaj 3-5 dana s major update-ima dok community ne identificira issue
Sajt ti perzistira u 500 ili WSOD i ne možeš ga vratiti? Pošalji nam pristupne podatke, mi prolazimo dijagnostiku korak po korak i tipično vraćamo sajt u rad u 30-60 minuta. Migracija na WMD uključena u prvu pretplatu.