Wat is een 500 internal server error?
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.
Alle serverfout http statuscodes
- 500: Interne serverfout
- 501: Niet geïmplementeerd
- 502: Bad Gateway
- 503: Dienst niet beschikbaar
- 504: Gateway Timeout
- 505: HTTP-versie wordt niet ondersteund
- 509: Bandbreedte overschreden (niet-officiële HTTP-statuscode)
- 510: Niet verlengd
- 511: Netwerkauthenticatie vereist
- 521: Webserver is down (Enkel bij Cloudflare)
- 522: Connectie duurt te lang (Enkel bij Cloudflare)
- 523: Herkomst is onbereikbaar (Enkel bij Cloudflare)
- 525: TLS -handshake mislukt (Enkel bij Cloudflare)
Hoe los ik een 500 internal server error op?
Oplossen 500 internal server error in 3 stappen
Log bestand bekijken
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.
Bestand met fout openen
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.
Fout oplossen
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!
Wordpress 500 internal server error?
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.
WordPress error 500 oplossen stappenplan!
Hieronder heb ik een stappenplan gemaakt waarmee jij gemakkelijk en snel de 500 error in WordPress kunt verhelpen. Je zorgt er met dit stappenplan altijd voor dat je de bron van het probleem achterhaalt en zodoende een goede oplossing kunt toepassen. Ook ga je systematisch te werk en voorkom je dat je meer kapot maakt in je site dan dat er nu al kapot is.
Logs bekijken
Bekijk de logs zoals hierboven al beschreven en zie daarin of jij een foutmelding kunt achterhalen, of een bestand/plugin/thema die bekend is bij je.
Thema of plugin uitschakelen
Zodra je de fout gevonden hebt - vaak in een thema of een plugin - schakel je dit thema of de plugin uit. Als dit nog lukt via de WordPress backend, dan adviseer ik dat daar te doen. Werkt die niet meer, dan is de FTP de plek om de map van het thema of de plugin aan te passen naar bijvoorbeeld themanaam-oud. Hierdoor kan Wordpress het thema of de plugin niet meer vinden en schakelt het deze uit.
Controleren of WordPress website geen http 500 error meer heeft
Zodra je dit gedaan hebt, bezoek je jouw WordPress website en controleer je of deze weer werkt. Mochten de fouten weg zijn, dan heb je het opgelost. Mochten er nog wel fouten zijn, controleer dan weer de log en check of de foutmelding gewijzigd is. Mogelijk is er nog iets anders niet goed en kun je dit met het uitschakelen van het thema of de plugin ook oplossen!
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!