Een 500 internal server error toont aan dat je website op dat moment een fout heeft en niet geladen kan worden. In dit geval betekend het vaak dat er een probleem in een script zit die de website nodig heeft om getoond te kunnen worden.
De server waar jouw website op gehost staat voert jouw gemaakte scripts uit en verwacht daar dan een resultaat uit wat die kan doorgeven aan jouw browser. Jouw browser toont vervolgens het resultaat en dat is in de meeste gevallen jouw website. In het geval dat er bijvoorbeeld een typefout in jouw script zit, dan kan de server het script niet uitvoeren en zodoende kan jouw browser geen website laten zien. De server heeft door dat die geen resultaat kan tonen aan jouw browser en vangt dit af met een server error. Jouw browser toont in dit geval dus een internal server error met een bepaalde statuscode, bijvoorbeeld 500. Dit word ook wel een HTTP status code genoemd.
Oplossen 500 internal server error in 3 stappen
Allereerst is het belangrijk om te weten wat het exacte probleem is, waar het probleem door komt en in welk bestand dit probleem zich bevindt.
Hiervoor heb je vaak bij elke provider een zogeheten log file Dit is een bestand waarheen alle aanvragen, waarschuwingen en fouten heen geschreven worden.
Vaak komen de aanvragen in de file genaamd access.log of access_log. De waarschuwingen fouten komen vaak in de error.log of error_log. Er zullen ongetwijfeld meerdere varianten qua naam zijn van de log, maar vaak bevind zich in de titel het onderwerp wat jij zoekt!
In dit artikel heb ik een fout in een php script als voorbeeld uit onze log hieronder opgesomd:
Mon Aug 04 12:51:07.885464 2016] [lsapi:error] [pid 89667:tid 139625036830464] [client 89.205.137.188:38415] [host 1.2.3.4] Backend fatal error: PHP Parse error: syntax error, unexpected end of file, expecting variable (T_VARIABLE) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN) in /var/www/html/phpinfo.php on line 2\n
Deze log regel vertelt ons dat er iets mis is in de file /var/www/html/phpinfo.php op regel nummer 4. Hier zou je dus mogelijk de fout kunnen vinden waardoor jij nu de http 500 error te zien krijgt als je naar jouw domeinnaam toe surft.
In deze stap gaan we het bestand wat we net gevonden hebben, namelijk /var/www/html/phpinfo.php openen en vooral kijken wat er op regel nummer 2 staat.
Mijn voorbeeld .php script
<?php
echo "hello world';
?>
Nu ik heb bestand geopend heb, zie ik eigenlijk al vrij snel de fout die optreed.
Je ziet dat ik de functie echo gebruik om op het scherm de tekst : “hello world” te printen. Deze echo functie vereist dat je de tekst binnen dubbele quotes plaatst, maar zoals je ziet open ik de functie wel met dubbele quotes, maar sluit ik hem af met single quotes.
Nu ik de fout gevonden heb, ga ik het script aanpassen en de fout oplossen. Ik pas het php script dus aan naar het volgende script:
<?php
echo "hello world”;
?>
Ik sla het script netjes op en bezoek de domeinnaam waarop ik mijn script geupload heb. Als het goed is, zie je nu de tekst : “hello world” op het scherm verschijnen en heb je geen nieuwe regel meer in jouw log bestand.
Dit betekent dat jij jouw http 500 error helemaal zelf opgelost hebt en jouw website dus weer volledig moet functioneren!
Aangezien WordPress het meest gebruikte CMS is wereldwijd, is hier ook vaak een HTTP 500 error te vinden (helaas).
Gelukkig is er doordat er zoveel WordPress websites online en gemaakt zijn ook enorm veel te vinden over de 500 errors en kun je vaak vrij gemakkelijk een oplossing toepassen op jouw WordPress website.
Om jou ook te helpen, heb ik enkele stappen opgesteld die je altijd als eerst moet proberen voordat je verder gaat kijken op het internet of binnen jouw website.
Soms loont het ook om te googlen op de exacte foutmelding uit de logs van jouw website die je gecontroleerd hebt in stap 1.
Het kan bijvoorbeeld voorkomen dat de fout bekend is op internet en dat je het gemakkelijk via een update of aanpassing aan het thema of de plugin kunt verhelpen!
Houd gewoonweg in je achterhoofd dat je altijd via deze stappen eerst probeert te achterhalen waar het fout / probleem zit en dan pas gaat zoeken naar een oplossing!