Foutcode 500, aargh … wat nu?

Het is een vraag die heel vaak terugkomt en waar ik graag even over schrijf. Het probleem met ‘Error 500 : Internal Server Error’ is dat het geen unieke foutcode is, de oorzaak is dus niet altijd dezelfde. Laten we er dieper op in gaan.

Wat is de ‘Foutcode 500’?

Jammergenoeg is het een vage foutmelding die enkel zegt dat er zich een fout voor doet op de website / webserver. De 500 reeks van de fouten zijn louter informatief, de server weet dat er een fout optreedt en kan de webpagina niet meer weergeven.

Het komt vaak voor wanneer je een (aantal) plugin(s) gaat updaten en er daardoor een conflict optreedt in de code. Lees vooral verder want het zijn niet alleen plugins die voor problemen zorgen.

Mogelijke Oorzaken

  • Bestandsrechten niet goed geconfigureerd op bepaalde bestanden en/of mappen.
  • Een fout in je .htaccess bestand.
  • Corrupte (core) bestanden.
  • Eén of meerdere plugin veroorzaken een conflict op de pagina(‘s).
  • Een tijdelijk serverprobleem.
  • Grotere storing aan de serverkant, hierbij neem je best contact op met je hosting partner.

Hoe vind ik de oorzaak? Een stappenplan.

  1. Kijk even of de /wp-admin/ sectie van de website of die nog werkt, soms is het probleem louter op de voorkant van de website en kan je nagenoeg alles doen in je Dashboard. Indien dat zo is, denk dan even na wat het laatste is dat je deed voor de fout opdook. Toevallig een update van één of meerdere plugins of thema’s? Ga die dan even gaan uitschakelen of verander even naar een standaard twenty-x thema en kijk of dat iets oplost.
  2. Lukt dat niet meer, dan kan je kijken of je toegang hebt op je eigen hostingpaneel, bvb. Directadmin, Plesk, Cpanel, …
    Kijk vooral bij de logbestanden …
    Image 2017-07-06 at 1.39.56 PM.png
    Image 2017-07-06 at 1.41.02 PM.png
    Als je de log bekijkt dan zie je daar per regel wat er fout gaat op de server, bij een groot probleem of veel trafiek op je website kan dit nogal groot worden, daarom dat er ook de mogelijkheid is om enkel de eerste 10 of 100 lijnen weer te geven. (dit is een DirectAdmin functie)
  3. Zet via FTP of bestandsbeheer WP_DEBUG op true;
      • In de hoofdmap van WordPress vind je het bestand wp-config.php terug, hierin staan heel wat instellingen van je installatie, enkel deze regel is van belang:
    define( 'WP_DEBUG', false );

    Verander deze naar:

    define( 'WP_DEBUG', true );
  4. Sla het bestand terug op, als je via FTP werkt terug uploaden naar dezelfde locatie en overschrijven. Daarna surf je terug naar je website.
  5. In plaats van een doodsimpele witte pagina zal je nu de volledige error krijgen. Daar staat gegarandeerd de locatie van het bestand of script waar het probleem ligt.
    Je kunt hier snel uit concluderen waar de oorzaak ligt. Meestal zal je daar de volledige locatie zien bvb. /home/websitenaam.be/public_html/wp-content/plugins/pluginnaam/…Daarna weet je al de oorzaak, nu nog een oplossing vinden.

Mogelijke oplossingen

Normaliter zou je met de WP_DEBUG methode zoals daarnet aangegeven al snel de nodige informatie kunnen vinden, vind je het met deze methode, en ook met je serverlogs niet dan raad ik de volgende stappen aan:

  • Ga op zoek naar het .htaccess bestand in de root (lees: hoofdmap) van de installatie, waar je dus de wp-admin, wp-content en de wp-includes map ziet staan. Daar vind je het bestand. Hernoem dat even naar iets anders, bvb. .htaccess.bak en kijk of de site het weer doet. Achterliggend kan je dan een nieuwe htaccess laten aanmaken door bij Instellingen > Permalinks terug de juiste instellingen te selecteren en op te slaan.
  • Hernoem even je wp-content/plugins map naar iets anders, kijk of je website het daarna wel doet, probeer hetzelfde met een standaard twenty-X thema.
  • Verhoog je PHP geheugen limiet op je hostingaccount.
    Niet alle hostingbedrijven geven je hier toegang toe, maar meestal kun je wel de PHP instellingen induiken en het daar verhogen.
    Je kunt het ook opnemen in je wp-config.php bestand met deze regels:

    define('WP_MEMORY_LIMIT', '64M');
    en/of
    define( 'WP_MAX_MEMORY_LIMIT', '256M' );
  • Overschrijf de WordPress Core wp-admin en wp-includes mappen (alle inhoud ook!) via FTP. Hiermee verwijder je niets maar ga je enkel de systeembestanden van het systeem overschrijven, zodanig dat deze niet meer corrupt kunnen zijn.
  • Lukt er niets van deze informatie, neem dan even contact op met het bedrijf waar je je website host, die zou het ook moeten kunnen uitzoeken.
  • Als laatste, als de hosting er niet aan uit geraakt, zou je een WordPress kenner ten rade kunnen vragen.

Ik wil het ook nog even hebben over het feit dat als er een nieuwe update uitkomt van eender welke plugin en je hebt problemen na de update, de makers dat graag van je zouden horen. Je kunt hiervoor altijd terecht op het wordpress.org forum van de desbetreffende plugin.

Maak altijd backups voor je grote updates doorloopt, daarnaast kan je de updates altijd testen in een staging omgeving.

Conclusie

De fout komt zo vaak voor dat ik er even een blogpostje aan wijdt, zo hoef ik het niet meermaals te herhalen. Op zich is de beste tip: ‘Ga nooit grote updates gaan doorvoeren op live-sites’ , maar doet dat op een kloon om te zien of alles nog werkt achteraf. Daarna kan je het op de live gaan uitvoeren.

Heb je nog andere problemen of foutcodes waarvan je graag hebt dat ik die ook even onder de loep neem, reageer dan op dit bericht onderaan. Natuurlijk ook als het je h