Help! Een 500 internal server error! Hoe los je dit op?


Een 500 error is een interne serverfout en daarmee de meest voorkomende foutmelding tijdens het ontwikkelen van een website. Er is maar 1 manier om achter te komen wat de echte foutmelding is en dat is door de foutmeldingen aan te zetten. Hieronder vindt je een paar scenario’s hoe je een 500 foutmelding kan krijgen;

  • Je ontwikkelt een WordPress website
  • Je hebt net een plug-in of thema aangepast, geïnstalleerd, bijgewerkt of verwijderd op je WordPress website
  • Je hebt een ander soort website opgezet en krijgt direct een 500 error te zien
  • De server is bijgewerkt waardoor je nginx/apache of PHP instellingen niet meer werken

Hoe kan ik een 500 internal server oplossen?

Zoals aangegeven kan een 500 internal server error verschillende oorzaken hebben, één duidelijke oplossing is helaas dan ook niet te noemen. De eerste stap die je moet controleren is of je de foutmeldingen van je website hebt aan gezet. Dit kan echter alleen gedaan worden als je toegang hebt tot de PHP bestanden van de website of direct via FTP of een file browser van je server.

Zorg er in dit geval voor dat je in de relevante bestandsstructuur (thema, plug-in of ander soort PHP script) de volgende code plaatst:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

In meeste gevallen van WordPress plaats je dit in het “functions.php” bestand in je thema, het eerste “.php” bestand van een plug-in of in “wp-config.php”.

  • “functions.php” vindt je in “/wp-content/themes/JOUW_THEMA/functions.php”. Waarbij “JOUW_THEMA” de thema is die je hebt gekozen voor je website.
  • Het eerstvolgende “.php” bestand in je plug-in vind je in “/wp-content/plugins/DE_PLUGIN/”. Waarbij “DE_PLUGIN” de plug-in naam bevat die je net hebt bijgewerkt/toegevoegd. Het PHP bestand heeft meestal dezelfde naam als de plug-in folder.
  • “wp-config.php” vind je in de bovenste hiërarchie folder van je website. (Dezelfde folder waar de map “wp-content” ook in zit)

WordPress heeft ook de mogelijkheid om debug/fout-meldingen te geven door de instelling “WP_DEBUG”. Echter in mijn ervaring kun je veel sneller de fout vinden door de PHP foutmeldingen aan te zetten.

Als dit niet heeft gewerkt kun je nog controleren of je de volgende acties hebt uitgevoerd:

  • De map waarin het php script staat mag maximaal de 775 rechten hebben
  • Een PHP script mag maximaal de 664 rechten hebben
  • Als er iets fout is gegaan bij het lezen van een script dan is het waarschijnlijk dan zal het script aangepast moeten worden. Dit geldt ook voor een fout in het .htacces bestand, de fout zal eruit gehaald moeten worden.
  • Een website kan al snel veel plugins bevatten, het kan zijn dat twee plugins een conflict veroorzaken waardoor je een 500 internal server error ontvangt. Om erachter te komen welke plugin het conflict veroorzaakt kan je alle plugins deactiveren en één voor één weer activeren.  Als je na elke stap test of de site het doet kom je er vanzelf achter welke plugin de problemen veroorzaakt.
  • Leeg de caches van je browser om de browser te forceren de laatste versie van de pagina op te halen.
  • Controleer op storingen bij de server of je hosting-provider.