Direct naar de inhoud

“500 Internal Server Error” oplossen

Home / Helpdesk / Foutmeldingen / “500 Internal Server Error” oplossen

“500 Internal Server Error” oplossen

4 min leestijd

Bijgewerkt op

Een 500 Internal Server Error verschijnt zodra de webserver een verzoek niet kan afronden, maar geen specifiekere fout kan geven. De pagina blijft leeg of toont alleen de statuscode. In WordPress is de oorzaak bijna altijd terug te leiden naar een PHP-fout, een fout in .htaccess of een overschreden resource-limiet. Hieronder lees je stap voor stap hoe je de oorzaak vindt en de 500 Internal Server Error oplost.

Wat betekent 500 Internal Server Error?

HTTP-statuscode 500 is de generieke serverfout. Het betekent dat de webserver het verzoek heeft ontvangen, maar dat er tijdens de verwerking iets misging waar de server zelf geen nadere uitleg over kan geven. Een 404 Not Found zegt dat een pagina of bestand ontbreekt. Een 500 zegt alleen dat er bij het verwerken iets misging. De oorzaak vind je dus in de logs van de server.

In WordPress zie je een 500-fout meestal in combinatie met een PHP-fatal-error, een ongeldige regel in .htaccess, of een script dat tegen de memory_limit of max_execution_time aanloopt. Welke van de drie het is, leid je af uit de error-log.

Bekijk de error-log eerst

Begin altijd in de error-log. Met WordPress-hosting van Chessweb bekijk je de error-log zelf in Plesk. De laatste regels rondom het moment van de 500-fout wijzen meestal letterlijk de oorzaak aan: een plugin-bestand, een regelnummer of een ongeldige .htaccess-directive.

Log in op het controlepaneel

Je vindt het controlepaneel door :8443 achter jouw domeinnaam te typen. Bijvoorbeeld: www.jouw-website.nl:8443.

Inlogscherm controlepaneel

Ben je je gebruikersnaam of wachtwoord vergeten, dan vind je op deze pagina instructies om je wachtwoord op te vragen.

  1. Klik in Plesk op Websites & Domains en open de tegel van het betreffende domein.
  2. Open Files (de file-manager) en navigeer naar de map /logs/.
  3. Open error_log en scroll naar de laatste regels. Je kunt ook Logs bovenaan de domein-tegel gebruiken voor een live-weergave.

Een concrete PHP-fout staat vrijwel altijd in error_log. Kom je er niet uit, mail support@chessweb.eu en stuur de laatste tien regels mee. Wij kijken dan kosteloos mee.

Veelvoorkomende oorzaken van een 500 Internal Server Error

De meeste 500-fouten in WordPress hebben een van deze vier oorzaken:

  • .htaccess-syntax-fout: een ongeldige regel of een directive die niet wordt ondersteund, bijvoorbeeld na een handmatige bewerking of een plugin-update die het bestand kapot schreef.
  • PHP-fatal-error in een plugin of thema: een ontbrekende functie, een incompatibele PHP-versie of een class-conflict tussen plugins.
  • memory_limit overschreden: een script vraagt meer geheugen dan PHP toestaat en eindigt met een fatal error. Bezoekers zien dan een 500-fout.
  • max_execution_time overschreden: een import, backup of zware query duurt te lang en wordt afgebroken. Dat gebeurt vaak bij grote WooCommerce-acties of bulkbewerkingen.

Welke van de vier het is, lees je af aan de regel in de error-log. Parse error en Fatal error wijzen op PHP, Invalid command of syntax error in een config-context wijzen op .htaccess, en regels met Allowed memory size of Maximum execution time wijzen op een resource-limiet.

.htaccess regenereren

Geeft de error-log een regel als Invalid command, syntax error of een verwijzing naar .htaccess op een specifieke regel, dan is het bestand zelf de oorzaak. WordPress beheert in .htaccess een blok met mod_rewrite-regels voor de permalink-structuur. Dat blok kun je in een paar klikken opnieuw laten genereren.

  1. Maak via de Plesk file-manager eerst een backup van het huidige .htaccess-bestand. Hernoem het naar .htaccess.bak.
  2. Log in op WP-admin en ga naar InstellingenPermalinks.
  3. Klik onderaan op Wijzigingen opslaan, zonder iets te veranderen. WordPress maakt dan een nieuw .htaccess-bestand met de standaard mod_rewrite-regels.
  4. Test je site. Werkt alles weer, vergelijk dan het nieuwe bestand met .htaccess.bak om te zien welke eigen regel de fout veroorzaakte.

Let op: bij Chessweb draait nginx vóór Apache als proxy. Regels in .htaccess blijven werken want Apache verwerkt ze. Voor maximale snelheid kunnen redirects ook op nginx-niveau worden geplaatst, dat regel je via support@chessweb.eu.

PHP-limieten verhogen

Wijst de error-log een resource-limiet aan, dan kun je memory_limit of max_execution_time in Plesk verhogen via PHP Settings per domein. Alle stappen, en wanneer optimaliseren beter is dan verhogen, lees je in ons artikel Allowed memory size exhausted oplossen.

Heeft je site een hogere waarde nodig dan Plesk toestaat, mail dan support@chessweb.eu met het domein, de waarde die je nodig hebt en waarom. We kijken dan wat er op de server mogelijk is.

Plugin- of thema-conflict isoleren

Wijst de error-log een specifiek plugin- of thema-bestand aan, schakel dan die plugin uit via WP-admin of, als de admin zelf onbereikbaar is, via FTP door de map onder /wp-content/plugins/ tijdelijk te hernoemen. Werkt de site dan weer, dan weet je welke plugin de fout veroorzaakt.

Twijfel je over de PHP-versie waarop een plugin werkt, lees dan hoe je van PHP-versie wisselt. Een plugin die niet werkt met je PHP-versie is een veelvoorkomende oorzaak van een 500-fout, vooral direct na een grote update.

Hulp nodig? Onze support kijkt met je mee, neem contact op.

WordPress hosting met staging en automatische back-ups

Op Advanced en Business verhuizen we 1 website kosteloos voor je. Binnen 24 uur live, vaak dezelfde dag.