Wat is een 500 Internal Server Error?


Een Internal Server 500 error geeft aan dat er iets mis gaat in uw website. De server kan de code van uw website niet uitvoeren, maar loopt hierbij tegen een zogenoemde 'fatale fout' aan, en kan hierdoor uw website niet serveren aan de bezoeker van de website. In dit artikel leggen we uit hoe u kan vaststellen of er daadwerkelijk sprake is van een 500 error, en wat u hier vervolgens aan kan doen.


Afhankelijk van uw browser en de code van uw website, kan dit er op verschillende manieren uitzien. In de meeste gevallen krijgt u een scherm te zien met de tekst 'Internal Server Error', maar het kan ook zijn dat de pagina helemaal blanco is of dat er een andere melding wordt gegeven. Onderstaand enkele voorbeelden van de mogelijke output:





De melding die Wordpress kan geven bij een 500 error.

Mijn pagina is helemaal blanco, hoe kan ik achterhalen of er in dit geval sprake is van een 500 error?


Indien uw pagina helemaal blanco blijft, kan u redelijk eenvoudig controleren of er in dit geval sprake is van een 500 error.


U doet dit door in uw browser (in deze handleiding gebruiken we Chrome) naar de website te gaan, en vervolgens op de blanco pagina een rechter muisklik te doen.


Er zal een menu verschijnen met een aantal opties, u kiest hier de optie 'Inspecteren'.


Het menu in Chrome. Indien u een andere browser gebruikt kunnen de menu's het menu er eventueel anders uitzien.




Nadat u op 'Inspecteren' heeft geklikt, zal er een extra gedeelte zichtbaar worden in uw browser, met een aantal opties. U klikt hier op de optie 'Netwerk'.




Wanneer u de website nu ververst (Ctrl+F5 op Windows, CMD+Shift+R op een Mac), zal u output zien verschijnen.




De status code ziet u in het rood omcirkeld staan. In dit geval is er dus met zekerheid sprake van een 500 error.


De file die een '200' (OK) melding teruggeeft, is in bovenstaand screenshot een font (lettertype) dat door chrome wordt ingeladen om de 500 error te laten zien, en staat dus los van de eigen website.



;

Hoe kan ik de oorzaak van de 500 error achterhalen?


Om de oorzaak van de error te achterhalen, kan u error reporting inschakelen. Dit zorgt ervoor dat u in plaats van de 500 error, de achterliggende foutmeldingen vanuit uw code te zien krijgt.


U kan error reporting inschakelen door een wijziging aan te brengen in de .user.ini file in de 'www' folder van uw hostingpakket.


Wij plaatsen standaard een bestand met de volgende inhoud:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;; This is an example .user.ini file provided by PCextreme B.V. ;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; To alter the default PHP settings, you can use this file. We provided these
; examples to make your life easier.

; NOTE:
; In some cases you would use this file in stead of a .htaccess file. Because
; we use PHP-FPM at PCextreme, it's required to use .user.ini files instead of
; .htaccess files for all PHP related configurations. Using php_flag and
; php_value entries in a .htaccess file will result in Internal Server Errors.
; Actions like URL rewrites or access limitations can still be accomplished
; using a .htaccess file.

; For a complete list of PHP ini settings see:
; http://php.net/manual/en/ini.list.php

; Uncomment these values if you want to your website to show PHP errors:
;error_reporting = E_ALL & ~E_DEPRECATED
;display_errors = On
;display_startup_errors = On

; Uncomment the following line if you want php errors to be saved to disk:
;error_log = /srv/home/uitlegxyz/php-error.log

; Uncomment this value if you want to increase the PHP memory limit, there is
; currently no hard limit enforced but setting this too high will result in
; slightly disgruntled systems administrators:
;memory_limit = 512M

; Uncomment this value if you want to increase the PHP upload max filesize:
;post_max_size = 16M
;upload_max_filesize = 16M


Standaard zijn de regels in dit bestand niet actief omdat ze 'uitgecomment' zijn, u ziet dit doordat iedere regel met een ; teken begint.


Op moment dat u een of meerdere regels wil activeren, haalt u eenvoudigweg het ; teken voor de betreffende regel weg.


Indien u error reporting in zou willen schakelen, zou het bestand er dus als volgt uitzien:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;; This is an example .user.ini file provided by PCextreme B.V. ;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; To alter the default PHP settings, you can use this file. We provided these
; examples to make your life easier.

; NOTE:
; In some cases you would use this file in stead of a .htaccess file. Because
; we use PHP-FPM at PCextreme, it's required to use .user.ini files instead of
; .htaccess files for all PHP related configurations. Using php_flag and
; php_value entries in a .htaccess file will result in Internal Server Errors.
; Actions like URL rewrites or access limitations can still be accomplished
; using a .htaccess file.

; For a complete list of PHP ini settings see:
; http://php.net/manual/en/ini.list.php

; Uncomment these values if you want to your website to show PHP errors:
error_reporting = E_ALL & ~E_DEPRECATED
display_errors = On
display_startup_errors = On

; Uncomment the following line if you want php errors to be saved to disk:
;error_log = /srv/home/uitlegxyz/php-error.log

; Uncomment this value if you want to increase the PHP memory limit, there is
; currently no hard limit enforced but setting this too high will result in
; slightly disgruntled systems administrators:
;memory_limit = 512M

; Uncomment this value if you want to increase the PHP upload max filesize:
;post_max_size = 16M
;upload_max_filesize = 16M


Zoals u ziet is het ; teken voor een drietal regels weggehaald. Wanneer u deze file opslaat, kan u de pagina opnieuw bezoeken in uw browser, en zal u de achterliggende foutmelding te zien krijgen:





In dit geval staat er op regel 39 van de 'index.php' file een fout. Met deze informatie kan de technisch beheerder van de pagina het probleem vervolgens verhelpen.

Ook na het inschakelen van error reporting geeft mijn pagina geen foutmelding weer, wat nu?


Het kan zijn dat het inschakelen van error reporting er niet voor zorgt dat u een foutmelding te zien krijgt.


In dit geval kan het zijn dat uw software de php foutmeldingen onderdrukt. Indien dit het geval is, zal u in de configuratie van uw website een debug optie moeten inschakelen. De technisch beheerder of ontwikkelaar van uw website zou u hiermee moeten kunnen helpen.


Ook kan het zijn dat de oorzaak voor de error in de '.htaccess' file zit. Dit is een bestand waarmee u bepaalde parameters op de server kan beinvloeden. Indien hier een foutje in staat, zorgt dit ook voor een 500 error.


U kan dit het makkelijkste testen door te kijken of er een bestand met de naam '.htaccess' aanwezig is en indien dit het geval is, de file tijdelijk te hernoemen naar bijvoorbeeld htaccess.txt om te bezien of dit het issue verhelpt.