Internal Server Error 500, kako nastaje i analiza?

  1. Početna
  2. cPanel
  3. Kako
  4. Kako
  5. Internal Server Error 500, kako nastaje i analiza?

Ovo uputstvo pomaže u pronalaženju grešaka čak i ako sajt radi ali njegovi delovi ne rade. Recimo upload slike ne radi ili upload teme, beskonačno učitavanje stranice ili bilo šta drugo. WordPress je omogućio prikaz grešaka a ovo je uputstvo baš za tu opciju.

Internal Server Error nastaje iz više razloga. Greška u kodu, problem .htaccess

Greška koja se pojavljuje na wordpress od najnovije verzije su:

– Ovo veb mesto doživljava tehničke poteškoće.
– This web site experiencing technical difficulties
– There has been a critical error on your website.

Rešavanje se svodi na sistem eliminacije.

Ukoliko je sajt neki drugi a ne wordpress (pošto se uputstvo za wordpress nalazi u nastavku ovog članka) aktivirajte debug u php pomoću sledećeg koda:

error_reporting(E_ALL);
ini_set('display_errors', 1);

Kod ovaj unosite u prvoj liniji odmah ispod <?php u svakom fajlu kako bi ste detektovali koji fajl i koji red u tom fajlu je problem.


Pre svega se ulogujte cPanel – File Manager i potražite u public_html “error_log” fajl (ili cPanel > File Manager i LOGS folder unutar njega videcete fajl “vasdomen.error_log”). Pogledajte šta piše unutra koji fajl pravi problem i gde se nalazi greška u kom redu koda. Tu bi trebao da stoji i datum kada je greška nastala ukoliko je skorašnji datum onda je moguće da ta greška izaziva error 500, ukoliko nije onda tražite dalje.

Proverite .htaccess fajl. Moguće je da nije sve ispisano kako valja ili da je nastala negde greška. Najbolje je da vratite htaccess na početak. Kako ne bi brisali linije koda iz fajla najbolje bi bilo da postavite tarabu na početku linije i time ćete je “obrisati” odnosno ta linija više neće biti bitna.

WordPress pronalaženje greške

WordPress Debug link

Putem ovog linka naći ćete uputstvo koje je potrebno da aktivirate opciju koja će vam pomoći da prikaže gde je greška.

Pre početka promenite PHP verziju na ea-php74 pa ako to reši problem to je to, a ako ne reši onda nastavite sa ovim uputstvom. Uputstvo za promenu PHP verzije.

Svaki deo ovog uputstva je obavezan da se uradi kako bi ste našli problem.

Svaki WorPress sajt ima svoj wp-config.php fajl u kome se uključuje prikazivanje grešaka (takozvani debug).

Ukoliko sajt na kome imate problem je glavni domen na hosting nalogu onda se njegov wp-config.php fajl nalazi: u cPanel > File Manager > public_html

Ukoliko je sajt na kome imate problem Addon domen (dodatn domen na hostingu) onda se njegov wp-config.php nalazi u drugom folderu a ne u public_html folderu. Glavni folder (document root) možete da nađete ako idete u cPanel p a kliknete na Addon domain i ispod polja Document Root pojaviće se putanja foldera vašeg sajta koji je ujedno i link i kada kliknete tu odmah će vam otvoriti folder vašeg sajta u kome se nalazi wp-config.php fajl.

Kliknete desni klik na wp-config.php fajl pa edit (ako vam se otvori mali prozor samo kliknite na edit dugme) kada vam se otvori nađite liniju u kojoj piše:

define( 'WP_DEBUG', false );

Umesto te linije treba da ubacite ovo:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', true );
@ini_set( 'display_errors', 0 );

Jednostavnim copy-paste i sačuvajte u desni gornji ugao.

Zatim pogledajte debug log fajl u folderu vašeg sajta (na istom mestu gde je i wp-config.php) imate folder wp-conetnt i unutar njega pojaviće se debug.log.

Ukoliko ga nema onda otvorite sajt nekoliko puta da vam prikaže grešku pa onda osvežite taj folder klikom na reload i pojaviće se. Ukoliko se i dalje ne prikazuje onda ste u pogrešnom folderu ili niste uradili prvi deo uputstva uključivanje debug opcije u wp-config.php fajlu.

Sada idemo na čitanje grešaka. Da bi ste ga otvorili kliknite desni klik pa “view”. 

Ukoliko vidite nešto tipa:

[05-Feb-2019 13:38:17 UTC] PHP Fatal error:  Allowed memory size of 41943040 bytes exhausted (tried to allocate 65536 bytes) in /home/username/public_html/wp-content/plugins/everest-forms/includes/class-evf-log-levels.php on line 14
[05-Feb-2019 13:39:33 UTC] PHP Fatal error:  Allowed memory size of 41943040 bytes exhausted (tried to allocate 32768 bytes) in /home/username/public_html/wp-content/plugins/jetpack/locales.php on line 236

To znači da je taj plugin napravio problem. U ovom slučaju dva everest-forms i jetpack.

  • ali samo ako stoji PHP FATAL ERROR ukoliko stoji worning onda to nije uzrok

Tu postoje dva načina da se reše u ovom slučaju a to je da se obriše sporan plugin i zamene drugim koji ne pravi problem (u ovom slučaju može da se poremeti sajt zavisno od plugina i koja je njegova namena).

A u ovom konkretnom slučaju koji vidite to se rešava iz cPanel-a opcija MultiPHP INI Editor gde povećate memory_limit. Tu možete da stavite duplo od onoga što piše ili 256MB recimo kako sigurno ne bi ste imali problema.

Ovaj primer sam naveo iz razloga zato što je to najubičajena greška koju možete uz dva klika lako da rešite.

Moguće je problem rešiti i promenom PHP verzije iz MultiPHP Manager iz cPanel-a jer neki dodaci rade na drugim verzijama php-a. Ukoliko nešto ne radi na novijim verzijama kao što je 7.4 (u trenutku pisanje ovog članka) ili više onda svakako nije bezbedno da koristite taj dodatak.

Ukoliko error log fajl ne prikaže ništa onda vam je greška u fajlu .htaccess to možete da rešite prostom izmenom .htaccess fajla vraćanje na podrazumevani a sadržaj koji treba da se nalazi samo u tom fajlu da bi wordpress radio je sledeći:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Djordje
Share