De gevreesde ‘500 Internal Server Error’-foutmelding. De foutmelding lijkt altijd op het meest ongelegen moment te komen en je bent ineens met man en macht bezig om erachter te komen hoe je je site weer online kan krijgen. Geloof me, we hebben het allemaal meegemaakt.

Andere foutmeldingen die zich op een vergelijkbare manier gedragen en je ook wellicht voorbij hebt zien komen zijn onder andere de foutmelding van het niet kunnen verbinden met de database en het gevreesde witte scherm des doods. Vanaf het moment dat je site down gaat verlies je bezoekers en klanten. Daarbij komt dat het er gewoon onprofessioneel uitziet voor je bedrijf als je website onbereikbaar is.

Vandaag nemen we een duik in de ‘500 Internal Server Error ’-foutmelding en kijken we naar een paar manieren om je site snel weer online kunt krijgen. Lees hieronder meer over wat deze foutmelding veroorzaakt en hoe je deze in de toekomst kunt voorkomen.

Bekijk onze videogids voor het oplossen van een 500 interne serverfout op je site

Wanneer je een website bezoekt, verstuurt je browser een verzoek naar de server waar de website wordt gehost. De server accepteert dit verzoek, verwerkt het en stuurt de opgevraagde bronnen terug (PHP, HTML, CSS, enz.) met een HTTP-header.

De HTTP bevat ook een zogenaamde HTTP-statuscode. Een statuscode is een manier om je in te lichten over de status van een verzoek. Het zou een 200-statuscode kunnen zijn wat “Alles is OK” betekent, of het kan een 500-statuscode zijn die aangeeft dat er iets mis is gegaan.

Er zijn een hoop verschillende soorten 500-statuscodes (500, 501, 502, 503, 504, enz.) en ze betekenen allemaal iets anders. In het geval van een ‘500 Internal Server Error’-foutmelding betekent het dat de server een onverwachte status tegenkwam dat het uitvoeren van het verzoek heeft verhinderd (RFC 7231, sectie 6.6.1).

Foutcode HTTP Error 500
Fouttype Foutcode
Foutvarianten “500 Internal Server Error”
“HTTP 500”
“Internal Server Error”
“HTTP 500 – Internal Server Error”
“500 Error”
“HTTP Error 500”
“500 – Internal Server Error”
“500 Internal Server Error. Sorry something went wrong.”
“500. That’s an error. There was an error. Please try again later. That’s all we know.”
“The website cannot display the page – HTTP 500.”
“Is currently unable to handle this request. HTTP ERROR 500.”
Oorzaken fout Browsercache.
Corrupt .htaccess bestand en PHP geheugenlimiet.
Problemen met externe plugins en thema’s.
Corrupte bestanden in je WordPress installatie.
Problemen met je databaseserver.

Variaties van de ‘500 Internal Server Error’-foutmelding

‘500 Internal Server Error’-foutmelding in WordPress
‘500 Internal Server Error’-foutmelding in WordPress

Door de verschillende webservers, besturingssystemen en browsers, kan een ‘500 Internal Server Error’-foutmelding er op een aantal verschillende manieren uitzien, maar ze komen allemaal op hetzelfde neer. Hieronder staan een paar voorbeelden van de vele verschillende variaties die je kunt tegenkomen op het web:

  • “500 Internal Server Error”
  • “HTTP 500”
  • “Internal Server Error”
  • “HTTP 500 – Internal Server Error”
  • “500 Error”
  • “500 – Internal Server Error”
  • “500 Internal Server Error. Sorry, er is iets fout gegaan.”
  • “500. Dat is een fout. Er is een fout opgetreden. Probeer het later opnieuw. Dat is alles wat we weten.”
  • “De pagina kan niet worden weergegeven – HTTP 500.”

Het kan zijn dat het volgende bericht er bij staat:

De server heeft een interne fout of een fout in de configuratie, en was niet in staat om je aanvraag te voltooien. Neem contact op met de beheerder, [email protected] en informeer hem over de tijd dat de fout is opgetreden en alles wat je hebt gedaan wat de fout kan hebben veroorzaakt. Meer informatie over deze fout is beschikbaar in de serverlog.

‘Interne server’-foutmelding
‘Interne server’-foutmelding

In andere gevallen zie je misschien wel gewoon een leeg wit scherm. Als het gaat om ‘500 Internal Server Error’-foutmeldingen is dit vrij gebruikelijk in browsers als Firefox en Safari.

'500 internal server'-foutmelding in Firefox
‘500 internal server’-foutmelding in Firefox

Grotere merken soms zelfs hun eigen aangepaste ‘500 internal server’-foutmeldingen, zoals deze van Airbnb.

‘500 Internal Server Error’-foutmelding van Airbnb
‘500 Internal Server Error’-foutmelding van Airbnb

Hier is nog een creatieve ‘500 Internal Server Error’-foutmelding door de mensen van readme.

‘500 Internal Server Error’-foutmelding van readme
‘500 Internal Server Error’-foutmelding van readme

Zelfs het machtige YouTube is niet gevrijwaard van ‘500 Internal Server’-foutmeldingen.

‘500 Internal Server Error’-foutmelding van YouTube
‘500 Internal Server Error’-foutmelding van YouTube

Als de server op IIS 7.0 (Windows) of hoger draait, dan kan je een extra HTTP-statuscode verwachten om de oorzaak van de 500-error te verduidelijken:

  • 500.0 – Er is een module- of ISAPI-fout opgetreden.
  • 500.11 – Toepassing wordt afgesloten op de webserver.
  • 500.12 – Toepassing wordt opnieuw gestart op de webserver.
  • 500.13 – Webserver is overbezet.
  • 500.15 – Rechtstreekse aanvragen voor Global.asax zijn niet toegestaan.
  • 500.19 – Configuratiegegevens zijn ongeldig.
  • 500.21 – Module is niet herkend.
  • 500.22 – Een ASP.NET-httpModules-instelling is niet van toepassing in de geïntegreerde modus voor een beheerde pipeline.
  • 500.23 – Een ASP.NET-httpHandlers-instelling is niet van toepassing in de geïntegreerde modus voor een beheerde pipeline.
  • 500.24 – Een ASP.NET-Imitatie-instelling is niet van toepassing in de geïntegreerde modus voor een beheerde pipeline.
  • 500.50 – Er is een herschrijffout opgetreden tijdens het afhandelen van een RQ_BEGIN_REQUEST-melding. Er is een uitvoeringsfout opgetreden vanwege de configuratie of een binnenkomende regel.
  • 500.51 – Er is een herschrijffout opgetreden tijdens het afhandelen van een GL_PRE_BEGIN_REQUEST-melding. Er is een uitvoeringsfout opgetreden vanwege de algemene configuratie of een algemene regel.
  • 500.52 – Er is een herschrijffout opgetreden tijdens het afhandelen van een RQ_SEND_RESPONSE-melding. Er is een uitvoeringsfout opgetreden vanwege een uitgaande regel.
  • 500.53 – Er is een herschrijffout opgetreden tijdens het afhandelen van een RQ_RELEASE_REQUEST-melding. Er is een uitvoeringsfout opgetreden vanwege een uitgaande regel. De regel is ingesteld op uitvoering voordat de uitvoercache van de gebruiker wordt bijgewerkt.
  • 500.100 – Interne ASP-fout.

De effecten van 500-foutmeldingen op SEO

In tegenstelling tot 503-foutmeldingen, die worden gebruikt voor de WordPress-onderhoudsmodus om Google te laten weten dat ze op een later tijdstip moeten terugkomen, kunnen 500-foutmeldingen een negatieve impact hebben op SEO wanneer deze niet meteen worden opgelost.

Als je site slechts 10 minuten down is en er wordt gecrawld, krijgt de crawler de pagina gewoon uit de cache. Dat is, als Google überhaupt je website heeft gecrawld voordat deze weer online is. In dit scenario is alles dus in orde.

Als de site echter een langere periode niet beschikbaar is, bijvoorbeeld voor meer dan zes uur, kan Google de 500-foutmelding zien als een probleem op site-niveau dat moet worden verholpen. Dit kan je webranking beïnvloeden. Als je je zorgen maakt over herhaaldelijke 500-foutmeldingen, moet je erachter komen wat ze veroorzaakt. Sommige van de onderstaande oplossingen kunnen helpen.

Hoe los je de 500 Internal Server Error op?

Waar moet je beginnen als je een ‘500 Internal Server Error’-foutmelding ziet op je site? Soms weet je niet eens waar je moet beginnen met zoeken. Normaliter worden 500-foutmeldingen veroorzaakt aan de kant van de server, maar uit onze ervaring blijkt dat de foutmeldingen twee oorzaken hebben. De eerste is een gebruikersfout (client-side probleem), en de tweede is een probleem met de server (server-side probleem). Daarom zullen we duiken in beide oorzaken.

Bekijk deze veelvoorkomende oorzaken en manieren waarop je de ‘500 Internal Server Error’-foutmelding kunt verhelpen en je website snel weer online kunt krijgen.

1. Probeer de pagina te verversen

Dit lijkt voor sommigen misschien vanzelfsprekend, maar een van de makkelijkste handelingen die je kunt proberen – en die je altijd als eerste zou moeten uitvoeren – wanneer je een ‘500 Internal Server Error’-foutmelding tegenkomt is om simpelweg een minuutje te wachten en de pagina te verversen (F5 of Ctrl + F5). Het zou kunnen dat de host of de server even overbelast is en snel weer beschikbaar zal zijn. Terwijl je wacht, kun je ook proberen om de website te openen in een andere browser om er zeker van te zijn dat dat niet het probleem is.

Iets anders dat je kunt doen is de websitelink kopiëren naar downforeveryoneorjustme.com. Deze website zal je vertellen of de website down is of dat het een probleem aan jouw kant is. Een dergelijke tool bekijkt de HTTP-statuscode dat het terugkrijgt van de server. Wanneer het iets anders is dan een ‘200 Alles is oké’-melding zal het je vertellen dat de website down is.

downforeveryoneorjustme
downforeveryoneorjustme

We hebben ook gemerkt dat de foutmelding voor kan komen meteen nadat je een plugin of thema hebt geüpdatet op je site. Meestal komt dit voor op hosts die niet naar behoren zijn ingesteld. Wat er dan gebeurt is dat ze vlak erna een tijdelijke time-out ervaren. Desondanks lossen de problemen zichzelf na een paar seconde op en is de pagina verversen alles wat je hoeft te doen.

2. De cache van je browser legen

Het legen van de browsercache is altijd een goede troubleshooting-stap om te nemen voordat je een diepe duik neemt in het debuggen van je website. Hieronder staan instructies voor het legen van de browsercache in de verschillende browsers:

3. Bekijk je serverlogs

Je moet altijd gebruik maken van je foutmeldingenlogs. Als je een klant bent bij Kinsta, kun je gemakkelijk geregistreerde foutmeldingen zien in de log-viewer op het MyKinsta-dashboard. Dit kan je helpen om een fout snel te specificeren, vooral als het wordt veroorzaakt door een plugin op je site.

Controleer foutenlogboeken op 500 interne serverfouten
Controleer foutenlogboeken op 500 interne serverfouten

Als je host geen loggingtool heeft, kun je ook de debugmodus van WordPress inschakelen door de volgende code toe te voegen aan je wp-config.php bestand om logging in te schakelen:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

Doorgaans zijn logbestanden te vinden in de map /wp-content. Bij sommige hosts, zoals Kinsta, is er een aparte folder die ‘Logs’ heet.

Folder voor WordPress-foutmeldingenlogs (SFTP)
Folder voor WordPress-foutmeldingenlogs (SFTP)

Je kunt ook de logbestanden bekijken in Apache en NGINX, waar ze meestal in de volgende mappen staan:

  • Apache: /var/log/apache2/error.log
  • NGINX: /var/log/nginx/error.log

Als je een klant bent bij Kinsta kun je ook gebruik maken van onze analytics tool om een overzicht te krijgen van het aantal 500-foutmeldingen en hoe vaak ze voorkomen. Dit kan van pas komen wanneer het een terugkerend probleem is of wanneer de fout zichzelf heeft opgelost.

500-foutmeldingenanalyse
500-foutmeldingenanalyse

Als de 500-foutmelding wordt veroorzaakt door een kritieke PHP-fout, kun je ook proberen om de registratie van PHP-foutmeldingen in te schakelen. Voeg simpelweg de volgende code toe aan het bestand dat de fout veroorzaakt. Je kunt het bestand meestal opsporen in het console-tabblad van Google Chrome DevTools.

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

En wellicht moet je je php.ini-bestand aanpassen met de volgende regel:

display_errors = on

4. Controleer op fouten bij het tot stand brengen van een databaseverbinding

‘500 Internal Server Error’-foutmeldingen kunnen worden veroorzaakt door een fout in de verbinding met de database. Afhankelijk van je browser kun je verschillende foutmeldingen zien. Desondanks zullen ze allebei een 500-statuscode genereren in je serverlogs.

Hieronder staat een voorbeeld van hoe een “fout bij het maken van een databaseverbinding”-melding eruitziet in je browser. De gehele pagina is leeg omdat er geen data opgehaald kan worden om de pagina te renderen, omdat de verbinding niet goed werkt. Dit breekt niet alleen de front-end van je website, maar verhindert ook de toegang tot je WordPress-dashboard.

Voorbeeld van een fout bij het maken van een databaseverbinding
Voorbeeld van een fout bij het maken van een databaseverbinding

Waarom gebeurt dit? Er zijn een paar veelvoorkomende redenen:

  • Het meest voorkomende probleem is dat de inloggegevens voor de database niet kloppen. Je site gebruikt een aparte gebruikersnaam en wachtwoord om verbinding te maken met de MySQL-database.
  • Je WordPress database is beschadigd. Met een hoop bewegende onderdelen zoals thema’s, plugins en gebruikers die deze alsmaar blijven verwijderen en installeren, raken databases soms beschadigd. Dit kan komen door een ontbrekende of beschadigde tabel, of wellicht doordat informatie per ongeluk verwijderd is.
  • Het kan zijn dat er bestanden van je WordPress-installatie zijn beschadigd. Het kan zelfs veroorzaakt worden door hackers.
  • Problemen met je database-server. Er kunnen een aantal dingen mis zijn aan de kant van je host, zoals een overbelaste database na een sterke toename in webverkeer, of een lange responstijd door veel gelijktijdige verbindingen. Dit komt vaak voor bij shared hosts omdat ze veel middelen verdelen over gebruikers op dezelfde servers.

Bekijk onze diepgaande gids over hoe je een error met het maken van een databaseverbinding kunt verhelpen.

5. Controleer je plugins en thema’s

Plugins van een externe partij kunnen gemakkelijk ‘500 Internal Server Error’-foutmeldingen veroorzaken. We hebben allerlei soorten boosdoeners bij Kinsta voorbij zien komen, van sliderplugins tot plugins die advertenties roteren. Vaak zie je de fout onmiddellijk na het installeren van iets nieuws of het uitvoeren van een update. Dit is een reden waarom we altijd aanraden om een ​​testomgeving te gebruiken voor updates, of tenminste om updates een voor een uit te voeren. Anders ben je, wanneer je een ‘500 Internal Server Error’-foutmelding tegenkomt, ineens aan het worstelen om erachter te komen welke er precies de oorzaak van was.

Een manier om dit op te lossen, is door al je plugins te deactiveren. Vergeet niet dat je geen gegevens verliest wanneer je een plugin deactiveert. Als je nog steeds toegang hebt tot het beheer, kun je dit snel doen door naar “Plugins” te bladeren en “Deactiveren” te selecteren in het bulkacties-menu. Hiermee worden al je plugins uitgeschakeld.

Deactiveer alle plugins
Deactiveer alle plugins

Als dit het probleem verhelpt, moet je de boosdoener vinden. Je kan beginnen door ze een voor een te activeren en na elke activatie de pagina te verversen. Wanneer je de ‘500 Internal Server Error’-foutmelding ziet, heb je de schadelijke plugin gevonden. Je kunt dan de pluginontwikkelaar om hulp vragen of in het WordPress-forum een ticket voor ondersteuning plaatsen.

Als je niet kunt inloggen op de WordPress admin kun je FTP gebruiken om bij je server te komen en je plugins map te hernoemen naar zoiets als plugins_old. Controleer vervolgens je site opnieuw. Als het werkt, moet je elke plugin een voor een testen. Hernoem de map van je plugin terug naar “plugins” en hernoem vervolgens elke plugins-map binnenin, een voor een, totdat je het vindt. Je kunt dit ook eerst proberen op een testsite.

Hernoem de plugin-map
Hernoem de plugin-map

Zorg er altijd voor dat je plugins, thema’s en de WordPress-core up-to-date zijn. En controleer of je een ondersteunde versie van PHP gebruikt. Als blijkt dat er een conflict is met slechte code in een plugin, moet je mogelijk een WordPress-ontwikkelaar binnenhalen om het probleem op te lossen.

6. WordPress-core herinstalleren

Soms kunnen de bestanden in de WordPress-core beschadigd raken, vooral op oudere websites. Het is vrij makkelijk om de WordPress-core opnieuw te uploaden zonder dat het je plugins of thema’s beïnvloedt. We hebben een uitgebreide handleiding met vijf verschillende manieren om WordPress te herinstalleren. Maak uiteraard wel een back-up voordat je doorgaat. Ga snel naar een van de secties hieronder:

7. Controleer op toestemmingsfouten

Een machtigingsfout met een bestand of map kan ook een ‘500 Internal Server Error’-foutmelding veroorzaken. Hier zijn een aantal aanbevelingen met betrekking tot het machtigen van bestanden en mappen in WordPress:

  • Stel alle bestanden in op 644 (-rw-r-r-) of 640.
  • Stel alle mappen in op 755 (drwxr-xr-x) of 750.
  • Stel nooit een map in op 777, ook niet wanneer de map is bestemd voor uploads.
  • Voor een verbeterde beveiliging kan wp-config.php ingesteld worden op 440 of 400 om te voorkomen dat andere gebruikers op de server deze kunnen lezen.

Zie het WordPress-codex artikel over het aanpassen van machtigingen voor bestanden voor een uitgebreidere uitleg.

Je kunt je bestandsmachtigingen gemakkelijk zien met een FTP-client (zoals hieronder te zien is). Je kunt ook contact opnemen met het ondersteuningsteam van je host en hen vragen om snel via GREP bestandsmachtigingen voor uw mappen en bestanden in te stellen om ervoor te zorgen dat ze correct worden ingesteld.

SFTP bestandsmachtigingen
SFTP bestandsmachtigingen

8. Verhoog PHP geheugenlimiet

Een ‘500-interne server’-foutmelding kan ook veroorzaakt worden doordat je aan het PHP-geheugenlimiet van je server zit. Je kunt proberen om het limiet te verhogen. Volg de onderstaande instructies om het limiet aan te passen in cPanel, Apache, je php.ini-bestand en je wp-config.php</code-bestand.

PHP-geheugenlimiet verhogen in cPanel

Als je website draait op een host die cPanel gebruikt, kun je het limiet gemakkelijk aanpassen in het gebruikersinterface. Klik onder ‘Software’ op ‘Select PHP Version’.

Selecteer PHP-versie
Selecteer PHP-versie

Klik op ‘Switch to PHP Options’.

Schakel over naar PHP-opties
Schakel over naar PHP-opties

Klik daarna op het memory_limit-attribuut en verander de waarde. Klik daarna op ‘Save’.

PHP-geheugenlimiet verhogen in cPanel
PHP-geheugenlimiet verhogen in cPanel

PHP-geheugenlimiet verhogen in Apache

Het .htaccess -bestand is een speciaal verborgen bestand die verschillende instellingen bevat en die je kunt aanpassen om het gedrag van de server aan te passen op map-niveau. Log in op je site via FTP of SSH, kijk naar je root-map en zoek naar een .htaccess-bestand.

.htaccess-bestand
.htaccess-bestand

Als er een is kun je dat bestand aanpassen om de vereiste code voor het verhogen van het PHP-geheugenlimiet toe te voegen. Het staat waarschijnlijk ingesteld op 64M of minder, je kunt proberen om deze waarde te verhogen.

php_value memory_limit 128M

PHP-geheugenlimiet verhogen in php.ini-bestand

Als het bovenstaande niet werkt kun je proberen om je php.ini-bestand aan te passen. Log in op je site via FTP of SSH, ga naar de root-map van je site en open het php.ini-bestand of maak deze aan.

php.ini-bestand
php.ini-bestand

Als het bestand er al is, zoek dan naar de drie instellingen en pas ze aan indien nodig. Als je het bestand hebt aangemaakt of als de instellingen niet te vinden zijn, kopieer en plak dan de onderstaande code. Je kunt de waardes natuurlijk aanpassen afhankelijk van je behoeften.

memory_limit = 128M

Sommige shared hosts kunnen vereisen dat je een suPHP-instructie aan je .htaccess-bestand toevoegt voordat de bovenstaande instellingen in het php.ini-bestand zullen werken. Pas hiervoor je .htaccess-bestand aan, die ook te vinden is in de root-map van je site, en voeg bovenaan het bestand de onderstaande code toe:

<IfModule mod_suphp.c> 
suPHP_ConfigPath /home/yourusername/public_html
</IfModule>

Als het bovenstaande niet werkt, kan het zijn dat je host globale instellingen heeft vergrendeld en ze in plaats daarvan gebruik maken van .user.ini-bestanden. Om je .user.ini-bestand aan te passen, log in op je site via FTP of SSH, ga naar de root-map van je site en open het .user.ini-bestand of maak deze aan. Daarna kun je de volgende code kopiëren en plakken:

memory_limit = 128M

PHP-geheugenlimiet verhogen in wp-config.php

We zijn geen fan van de laatste optie, maar als al het andere niet lukt kun je het proberen. Log in op je site via FTP of SSH, en zoek naar je wp-config.php-bestand, die normaliter in de root-map van je site staat.

wp-config.php-bestand
wp-config.php-bestand

Voeg de onderstaande code toe aan je wp-config.php-bestand:

define('WP_MEMORY_LIMIT', '128M');

Je kunt je host ook vragen of je problemen hebt met de geheugenlimiet. We gebruiken de Kinsta APM tool en andere methoden voor probleemoplossing hier bij Kinsta om klanten te helpen bepalen welke plugin, query of script de limiet zou kunnen uitputten. Je kan ook je eigen custom New Relic sleutel van je eigen licentie gebruiken.

Debuggen met New Relic
Debuggen met New Relic

9. Herstel je .htaccess bestand

Kinsta maakt alleen gebruik van Nginx, maar als je een host gebruikt die draait op Apache kan het zijn dat je .htaccess-bestand problemen oplevertof beschadigd is geraakt. Volg de onderstaande stappen om een nieuwe aan te maken.

Log in op je site via FTP of SSH, en hernoem je .htaccess-bestand naar .htaccess_old.

.htaccess-bestand hernoemen
.htaccess-bestand hernoemen

Meestal kun je om dit bestand opnieuw aan te maken simpelweg je permalinks opnieuw opslaan in WordPress. Als je echter middenin een ‘500 Internal Server Error’-foutmelding zit heb je waarschijnlijk geen toegang tot je WordPress-beheer en dan is dit geen optie. Daarom kun je een nieuw .htaccess-bestand aanmaken en de onderstaande inhoud eraan toevoegen. Upload het daarna op je server.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Bekijk de WordPress Codex voor meer voorbeelden, zoals een standaard .htaccess-bestand voor multi-site-omgevingen.

10. Herstel codeer- of syntaxfouten in je CGI/Perl Script

500-Foutmeldingen die veroorzaakt worden door fouten in je CGI- en Perl-scripts zijn veel minder gebruikelijk dan ze vroeger waren. Desondanks is het belangrijk om te noemen, vooral voor diegenen die cPanel gebruiken waar nog steeds gebruik wordt gemaakt van veel one-click CGI-scripts. Zoals AEM op Stack Overflow zei:

CGI is vervangen door een grote verscheidenheid aan web-programmeertechnologieën, waaronder PHP, verschillende Apache-extensies zoals mod_perl, verschillende smaken en frameworks van Java, waaronder Java EE, Struts, Spring, enz., Python-gebaseerde frameworks zoals Django, Ruby on Rails en vele andere Ruby-frameworks, en verschillende Microsoft-technologieën.

Hier zijn nog een aantal tips voor het werken met CGI-scripts:

  • Gebruik voor het bewerken altijd een plain-text-editor zoals Atom, Sublime of Notepad++. Dit zorgt ervoor dat het bestand in ASCII-indeling blijft.
  • Zorg voor de juiste chmod 755-machtigingen worden gebruikt op CGI-scripts en -mappen.
  • Upload je CGI-scripts in ASCII-indeling (die je kunt selecteren in je FTP-editor) naar de cgi-bin-map op je server.
  • Controleer of de Perl-modules die je nodig hebt voor je script zijn geïnstalleerd en worden ondersteund.

11. Vraag je host naar serverproblemen

Ten slotte, omdat ‘500 Internal Server Error’-foutmeldingen kunnen worden veroorzaakt door een PHP-time-out of een kritieke PHP-fout met plugins van een derde partij, kun je altijd contact opnemen met je host. Soms zijn deze problemen moeilijk op te lossen zonder de hulp van een expert. Hier zijn enkele veelvoorkomende voorbeelden van fouten die een ‘500 Internal Server Error’-foutmelding veroorzaken op je server:

PHP message: PHP Fatal error: Uncaught Error: Call to undefined function mysql_error()...
PHP message: PHP Fatal error: Uncaught Error: Cannot use object of type WP_Error as array in /www/folder/web/shared/content/plugins/plugin/functions.php:525

Bij Kinsta monitoren we alle sites van onze klanten en worden we automatisch op de hoogte gesteld van soortgelijke problemen. Hierdoor kunnen we pro-actief alle problemen oplossen. We maken ook gebruik van LXD-managed-hosts en gearrangeerde LXC-softwarecontainers voor elke site. Dit betekent dat elke site wordt gehuisvest in zijn eigen container, die alle softwarematige middelen heeft die nodig zijn om deze optimaal uit te voeren (Linux, Nginx, PHP, MySQL). De middelen zijn 100% privé en worden niet gedeeld met anderen, zelfs niet met je eigen sites.

PHP-time-outs kunnen ook worden veroorzaakt door een gebrek aan PHP-workers, hoewel deze normaliter 504-foutmeldingen zullen geven in plaats van 500-foutmeldingen. Deze bepalen hoeveel aanvragen er tegelijkertijd kunnen worden afgehandeld op je site. Simpel gezegd, elke ongecachete aanvraag voor je website wordt afgehandeld door een PHP-worker.

Wanneer PHP-workers bezig zijn op een site, bouwen ze een wachtrij op. Wanneer je je limiet aan PHP-workers hebt bereikt, duwt de wachtrij oudere aanvragen weg, wat tot 500-foutmeldingen of incomplete aanvragen kan leiden. Lees ons uitgebreide artikel over PHP-workers.

Monitor je site

Als je je zorgen maakt over dit soort foutmeldingen op je site, kun je een tool gebruiken zoals updown.io om je site te monitoren en je meteen op de hoogte stellen wanneer deze zich voordoen. Het stuurt periodieke HTTP-HEAD-aanvragen naar een URL naar keuze. Je kunt gewoon je homepage gebruiken. De tool laat je controleerfrequenties instellen van:

  • 15 seconde
  • 30 seconde
  • 1 minuut
  • 2 minuten
  • 5 minuten
  • 10 minuten

Het zal je een e-mail sturen wanneer je site down gaat. Hieronder staat een voorbeeld.

E-mailnotificatie van een 500-foutmelding.
E-mailnotificatie van een 500-foutmelding.

Dit kan vooral van pas komen als je een plugin aan het debuggen bent of wanneer je op een shared host zit met overvolle servers. Dit kan bewijs leveren voor hoe vaak je site daadwerkelijk down gaat (zelfs midden in de nacht).

Daarom raden we altijd aan om met een Applicatie Hosting, Database Hosting en Managed WordPress Hosting (zoals Kinsta) in zee te gaan.

Bekijk zeker ons artikel waarin we de top 9 redenen verkennen om te kiezen voor Managed WordPress Hosting.

Samenvatting

‘500 Internal Server Error’-foutmeldingen zijn altijd frustrerend, maar hopelijk weet je nu een aantal nieuwe manieren om de problemen op te lossen en snel je site weer online te krijgen. Onthoud dat deze soort foutmeldingen meestal worden veroorzaakt door plugins van een derde partij, kritieke PHP-fouten, problemen met het verbinden met de database, problemen met je .htacces-bestand of je PHP-geheugenlimiet, en PHP-time-outs.

Is er iets dat we over het hoofd hebben gezien? Wellicht heb je nog een andere tip voor het troubleshooten van ‘500 Internal Server Error’-foutmeldingen. Laat het ons weten door hieronder een reactie achter te laten.

Brian Jackson

Brian heeft een enorme passie voor WordPress, gebruikt het al meer dan tien jaar en heeft zelfs al aantal premium plugins ontwikkeld. Brian houdt van bloggen, films en hikes. Kom in contact met Brian op Twitter.