Greška 500 (Internal Server Error) je česta greška i javlja se na onim stranicama na kojima postoji problem ili sa serverom ili sa fajl sistemom na vašem sajtu. Uzrok problema može biti na serveru gde je hostovan sajt, a može biti i u samom root-direktorijumu, gde su sačuvani fajlovi.
Ovo je jedna od frustrirajućih grešaka koja se može javiti u WordPressu i nikad nema isto rešenje, već zahteva dosta vremena i strpljenja da bi se uočio uzrok greške i da greška bila ispravljena. U nastavku teksta ćemo vam predložiti nekoliko mogućih rešenja i nadamo se da ćemo time uspeti da vas poštedimo stresa i uštedimo vaše vreme. Da počnemo:
Napravite rezervnu kopiju vašeg sajta
Ovo rešenje vam preporučujemo u svakom slučaju. Napravite rezervnu kopiju vašeg sajta, smestite je u root direktorijum, biće vam korisna u slučaju da nesto pođe naopako na samom sajtu.
Koristite FTP klijent
Ukoliko imate iskustva sa korišćenjem FTP klijenta, preskočite ovaj deo. Možete koristiti i File Manager, ali je FTP klijent lakši za korišćenje.
Postoji mnogo FTP klijenata, ali mi ćemo koristiti FileZilla FTP klijent u ovoj demonstraciji. Na zvaničnoj stranici FileZille možete ga besplatno preuzeti. Kliknite na dugme za preuzinje. Ako kliknete na dugme Show Additional Download Options, moćićete da preuzmete verziju koja je kompatibilna sa vašim operativnim sistemom.
Kada preuzmete File Zillu, kliknite na Click File > Site Manager. Odaberite opciju New Site i unesiste podatke.
Unesite sledeća podešavanja:
- Host – Ime domena
- Port – Ostavite prazno
- Protocol – FTP – File Transfer Protocol
- Encryption – Only Use Plain FTP
- Logon Type – Normal
Korisničko ime i lozinka su isti kao oni uz pomoć kojih pristupate file manageru ili C-Panelu. Ukoliko ih ne znate, obratite se hosting provajderu.
U Transfer Settings delu, odaberite opciju Limit Number of Simultaneous Connections i postavite na 8. Ovo podešavanje će sprečiti blokiranje IP adresa na serveru na kome je postavljen vaš sajt. Nakon toga pristupite sajtu i možemo da počnemo.
Najčešća rešenja greške 500
Dva najčešća uzroka greške 500 su oštećeni .htaccess fajl i prekoračenje PHP memorije na serveru. Fajl .htaccess se može oštetiti ili dodavanjem novog plugina ili menjanjem sadržaja na sajtu. Problem se može lako rešiti, kreiranjem novog .htaccess fajla.
Limit za PHP memoriju se najčešće probija upotrebom velikog broja plugin-ova ili upotrebom loše iskodiranih plugin-ova. U tom slučaju dovoljno će biti povećanje limita koje ćemo vam kasnije detaljnije objasniti.
Kreiranje novog .htaccess fajla
Otvorite WordPress Root Direktorijum uz pomoć FileZille. Ukoliko u direktorijumu vidite fajlove kao što su wp-admin i wp-content, na pravom ste mestu. Ukoliko ne vidite .htaccess fajl, to znači da je sakriven i možete ga videti kada podesite opciju Force Showing Hidden Files.
Pronašli ste .htaccess fajl. Promenite mu ime “.htaccess.bak” i tako će izbrisan stari, pa će cemim tim biti neophodno kreiranje novog fajla. Nakon kreiranja novog fajla, na WordPress administratorskog stranici, u delu Settings odaberite opciju Permalinks i posle sačuvajte izmene.
Pokrenite sajt u pretraživaču. Ukoliko je greška 500 nestala, uzrok je bio oštećen .htacces fajl. Ukoliko greška 500 i dalje postoji, moraćemo da sprovedemo još provera i testiranja.
Povećanje limita za PHP memoriju
Limit PHP memorije je unapred definisan i u samom WordPressu i od strane vašeg hosting provajdera. U WordPress fajlu možete sami povećavati limit PHP memorije, ali do granice koja je postavljena od strane vašeg hosting provajdera. Sad ćemo vam pokazati kako u WordPressu povećati memoriju, nakon toga osvežite sajt i proverite da li će se greška 500 i dalje javljati.
Otvorite root direktorijum i pronađite wp-config.php fajl. Kliknite desnim klikom, odaberite opciju Download i na taj način ćete snimiti fajl na vaš računar. Otvorite ga uz pomoć bilo kod text-editora i ispod uvodnog PHP taga dodajte sledeću liniju koda:
define (‘WP_MEMORY_LIMIT’, ’64M’);
Sačuvajte ovaj fajl i vratite ga u root direktorijum i zamenite stari fajl novim. Osvežite FTP klijent, nakon toga osvežite sajt. Ukoliko greška i dalje postoji, znači da nije prouzrokovana prekoračenjem limita PHP memorije. U tom slučaju izbrišite liniju koda koja je prikazana gore i ponovo dodajte fajl u root direktorijum.
Ukoliko se nakon toga ne pojavljuje greška, nemojte biti previše uzbuđeni – jer nas čeka još posla.
Naime, ovakvo povećanje PHP memorije je ekvivalentno sipanju belila u sudoperu, kada miriše na pokvarena jaja. Rešićete se mirisa, ali će problem nastati na drugom mestu, na primer zapušiće se sudopera.
Slična je priča sa ovakvim povećanjem limita PHP memorije. Povećali smo memoriju, ali nešto će i dalje zauzimati tu memoriju i trošiti resurse, tako da je ovakav vid rešavanja problema trenutan.
Neka, malo manje česta rešenja problema
Ukoliko gorenavedene metode nisu pomogle, postoji još nekoliko alternativnih rešenja ovog problema, koje ćemo vam prezentovati u nastavku teksta:
- Deaktiviranje plugin-ova, sa ciljem pronalaženja plugina koji je uzrok problema
- Lociranje problema uz pomoć debagovanja
- Provera dozvola fajlova i foldera
- Dodavanje wp-content i wp-includes foldera na sajt
- Provera sa hosting – provajderom da li je problem na serveru.
Deaktivacija plugin-ova
Pristupite administratorskoj strani u WordPressu i deaktivirajte jedan po jedan plugin. Nakon svake deaktivacije, osvežite sajt i ukoliko nestane greška, znači da je uzrok nje bio plugin.
Obrišite plugin i pronađite alternativni koji će izvršavati istu funkciju. Ukoliko ne možete da pronađete zamenu, možete kontaktirati programere koji su radili na razvoju plugina uz pomoć podrške na zvaničnom WordPressovom sajtu.
U slučaju da nemate pristup administratorskom panelu, pristupite root direktorijumu uz pomoć FTPa. Pronađite wp-content direktorijum. U njemu ćete naći direktorijume kao što su Plugins, Themes i ostale.
Promenite ime direktorijuma “Plugins” u, recimo, “plugins.test”. Na taj način ćete deaktivirati sve pluginove na sajtu. Onda osvežite sajt, ako nema greške 500, znači da je uzrok bio neispravan plugin. Onda dodajte pluginove jedan po jedan, nakon dodavanja svakog osvežavajte sajt i na taj način ćemo locirati plugin koji je bio neispravan i koji je uzrok greške 500. Vodite računa da folder sa aktivnim pluginovima bude i dalje nazvan “Plugins”.
Debagovanje WordPress sajta
Ukoliko imate problem sa pronalaženjem uzroka greške možete upotrebiti WordPressov dodatak za debagovanje. Debagovanje možete izvršiti dodavanjem dela koda u wp-config.php. Sve eventualne greške će biti vidljive u fajlu u root direktorijumu.
Debagovanje WordPress sajta ćemo obraditi kao zasebnu temu. Loša strana debagovanja je ta što prilikom sprovođenja debagovanja, korisnici mogu doći do izvornog koda sajta.
Provera dozvola
Ovo najverovatnije nije uzrok problema, ali je vredno pomena. U WordPress direktorijumu bi za dozvole i ovlašćenja trebalo biti postavljene vrednosti 755 ili 644. Nepravilno podešavanje može biti uzrok greške 500. Otvorite root direktorijum uz pomo. FTP klijenta. U većini programa postoji jezičak “Permissions” gde možete proveriti ova podešavanja. Bitno je da vrednosti budu 755 ili 644.
Dodavanje novih verzija wp-admin i wp-includes fajlova
Ovaj korak bi trebalo da bude poslednji adut, ali ukoliko gorenavedeni predlozi nisu dali željeni rezultat, vredi pokušati.
Preuzmite novu verziju WordPressa i dodajte fajlove “wp-admin” i “wp-includes” . Osvežite FTP klijent i osvežite sajt i proverite da li će se pojaviti greška 500. Ukoliko greška nestane, znači da je uzrok iste bio oštećeni takozvani core-fajl (jezgro), a ukoliko greška postoji i dalje, ne preostaje nam ništa drugo nego da se obratimo hosting provajderu.
Kontakt sa hosting provajderom
Ukoliko ste pokušali sva, gorenavedena, moguća rešenja problema i niste dobili željeni rezultat, hosting provajder bi mora da ima rešenje za problem. Samo je važno da budemo sigurni da uzrok problema nije u root direktorijumu. Imajte na umu da će hosting provajder pokušati da “okrivi” vaš sajt za problem, pa je zato bitno detaljno mu objasniti sve korake kroz koje ste prošli i ljubazno zamoliti da provere ispravnosti svojih servera.
Zaključak
Greška 500 je jako frustrirajuća, jer ukoliko u startu nemate jasnu predstavu šta može biti uzrok problema, zahtevaće mnogo vremena, energije i resursa na pronalaženje uzroka greške. Nadamo se da će vam koraci koje smo naveli u ovom tekstu biti od pomoći i učiniti detektovanje uzroka problema lakšim, bržim i efikasnijim.
Ovaj problem možemo sprečiti pravljenjem rezervnih kopija i updateovanjem pluginova, tema, ukoliko je to izvodljivo. Ukoliko je moguće, proverite sa programerom koji je radio na razvoju teme, koji su pluginovi kompatibilni sa temom i da li upotreba nekog plugina može oštetiti .htaccess fajl. Naravno, preventivno možemo delovati na grešku 500 ukoliko odaberemo adekvatan hosting paket.
Ukoliko imate sličnih problema sa sajtom ili ste imali ranije problema, možete nas kontaktirati, pitati za savet ili podeliti svoje iskustvo sa nama.