Geeft je website 500 Internal Server Error of ‘HTTP ERROR 500’? Zo lees je het foutenlog, vind je de recente wijziging die het veroorzaakt en zet je de site veilig terug.
Een 500 Internal Server Error is de algemene melding dat er op de server iets misging bij het maken van de pagina. De server weet dat er een fout was, maar vertelt de bezoeker bewust niet welke: de details staan in de logbestanden. Daarom is de 500 zelf weinig zeggend, en is het foutenlog altijd de eerste stap.
De meest voorkomende oorzaken: een PHP-fout in code, een plugin of een thema (vaak direct na een update), een fout in .htaccess of de serverconfiguratie, onjuiste bestandsrechten, een volle schijf, een geheugenlimiet of een database die niet antwoordt en die de applicatie niet netjes afvangt. In de meeste gevallen is er kort tevoren iets veranderd.
Een 500 verschilt van de 502, 503 en 504: die gaan over de verbinding tussen webserver en achterliggende dienst, terwijl een 500 meestal uit de applicatie of de configuratie zelf komt. Een wit scherm zonder melding is vaak dezelfde fout, alleen zonder statuspagina.
Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.
Herlaad de pagina na een minuut. Blijft de fout, dan kun je er als bezoeker niets aan doen: het probleem zit op de server. Meld het bij de eigenaar, met het adres en het tijdstip waarop je de fout zag.
Een 500 heeft bijna altijd een aanleiding: een update van de applicatie, een nieuwe of bijgewerkte plugin, een gewijzigd configuratiebestand of een nieuwe PHP-versie. Weet je wat er veranderde, dan heb je je eerste verdachte. Bij een PHP-update: zie 500-fout na een PHP-update.
Open het foutenlog terwijl je de pagina herlaadt. Bij nginx met PHP-FPM staat de PHP-fout vaak in het nginx-log als FastCGI sent in stderr: "PHP message: PHP Fatal error: …", met bestand en regelnummer. Ook de applicatie heeft vaak een eigen log. Op gedeelde hosting vind je de logs in het hostingpaneel.
sudo tail -f /var/log/nginx/error.log
sudo tail -n 50 /var/log/apache2/error.log
sudo journalctl -u php8.3-fpm --since '15 min ago'Zet de laatst gewijzigde code of het laatste configuratiebestand terug naar de vorige werkende versie, of zet de nieuwe plugin uit door de map tijdelijk te hernoemen. Werkt de site daarna weer, dan weet je zeker waar het zit en kun je het in alle rust op een testomgeving uitzoeken.
Een fout in .htaccess geeft op Apache direct een 500 voor de hele map. Hernoem het bestand tijdelijk om te testen; de uitleg staat op .htaccess-fout 500. Heb je de nginx- of Apache-configuratie aangepast, test die dan.
sudo nginx -t
sudo apachectl configtestEen volle schijf geeft 500’s omdat sessies, cache en logs niet meer geschreven kunnen worden; zie No space left on device. Een te krappe geheugenlimiet zie je in het log als Allowed memory size exhausted. Controleer ook of de applicatie naar haar cache- en uploadmappen mag schrijven.
df -h
df -iStaat er niets bruikbaars in het log, zet dan op een testomgeving of kopie van de site het loggen van fouten aan en het tonen ervan. Toon foutmeldingen nooit op de live site: ze laten paden en soms gegevens zien die aanvallers helpen.
; php.ini of .user.ini (testomgeving)
display_errors = On
log_errors = On
error_reporting = E_ALLLet op: Maak een back-up van bestanden en database voordat je gaat terugzetten of iets verwijdert. Een overhaaste reparatie op een live site kan meer kapotmaken dan de oorspronkelijke fout.
Welke log je nodig hebt, hangt af van hoe de site draait:
/var/log/nginx/error.log, of een eigen log per site uit de vhost-configuratie./var/log/apache2/error.log (Debian/Ubuntu) of /var/log/httpd/error_log (RHEL-familie).storage/logs/laravel.log bij Laravel, of een debug-log van het CMS.Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.
Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.
Er ging iets mis op de server bij het opbouwen van de pagina. De oorzaak staat niet op het scherm maar in het foutenlog van de server.
Nee. Een 500 ontstaat op de server. Herladen of een andere browser verandert er niets aan, behalve als het om een kortstondige hapering ging.
Een 500 komt meestal uit de applicatie of configuratie zelf. 502, 503 en 504 gaan over de verbinding tussen webserver en achterliggende dienst.
Ja, een plugin of thema met een PHP-fout is een veelvoorkomende oorzaak, vaak na een update. Het foutenlog noemt dan het bestand van die plugin.
Hulp nodig van een mens? Website-onderhoud · Hosting en onderhoud · Gratis website-scan · Alle oplossingen