500 Internal Server Error

Probleem

Je website of een specifieke pagina op je website geeft één van de volgende foutmeldingen:

  • 500 Internal Server Error
  • 500 Serverside Error

Anders dan de foutmelding doet vermoeden is er in de meeste gevallen geen sprake van een interne fout in de webserver zelf; deze foutmelding wordt gegeven voor ieder probleem dat zich op de server voordoet, bijvoorbeeld met het uitvoeren van (PHP-)scripts of het opvolgen van aanwijzingen in .htaccess-bestanden. Om het lekken van informatie te voorkomen bevat de foutmelding meestal weinig aanvullende informatie en ben je dus aanwezen op de logs van je website.

De logs bekijken

Als een bezoeker van je website een 500-fout krijgt dan zou hiervan altijd een melding in het errorlog van je website moeten staan. Om dit te bekijken log je in met SSH en ga je vervolgens naar de logs-directory. Daar vindt je het bestand errorlog met alle recente foutmeldingen. Je kunt ook het commando tailerror invoeren om het log 'live' te volgen, met een vertraging van maximaal enkele seconden.

Mogelijke oorzaken en oplossingen

Hieronder volgen enkele veelvoorkomende meldingen met een korte toelichting. Als je meer wilt weten, of als je geen melding kunt vinden, dan kun je natuurlijk ook altijd contact opnemen met NederHost. We zoeken het graag voor je uit.

Foutmeldingen over .htaccess of 'directives'

Deze meldingen slaan op type- of configuratiefouten in een .htaccess-bestand op je website. Met 'directives' worden de configuratietermen bedoeld (het eerste woord op iedere regel), met 'sections' wordt verwezen naar blokken die zijn omsloten door semi-HTML-tags (zoals lt;Section> en &lgt;/Section>).

'Invalid command, perhaps misspelled or defined by a module not included in the server configuration'

Je probeert een module te gebruiken die niet beschikbaar is bij NederHost of er zit een typfout in de naam van een directive. Als je een module wilt gebruiken die (nog) niet beschikbaar is neem dan contact op met NederHost, in de meeste gevallen is het geen probleem deze alsnog toe te voegen.

'Premature end of script headers'

Deze melding duidt op het probleem met het uitvoeren van een PHP- of CGI-script:

  • In geval van CGI-scripts zit er waarschijnlijk een fout in het script zelf. Een eventuele foutmelding vanuit het script is terug te vinden in het errorlog. Je kunt een CGI-script eenvoudig testen door deze vanaf de shell uit te voeren. Een CGI-script zou in ieder geval een regel beginnend met 'Content-Type:' moeten leveren en mogelijke aanvullende HTTP-headers, gevolgd door een lege regel.
  • In geval van PHP-scripts staan waarschijnlijk de rechten van het betreffende PHP-script niet goed ('gewone' fouten in een PHP-script worden doorgaans door PHP zelf afgevangen). Controleer of je de eigenaar van het PHP-bestand bent en of je de enige bent met lees- en schrijfrechten. Gebruik eventueel 'chmod 600' om de rechten van het bestand aan te passen.

'File is writable by group' of meldingen van suPHP

De rechten van het betreffende PHP-script zijn te ruim ingesteld. Voor het uitvoeren van PHP-scripts heeft alleen de gebruiker leesrechten nodig. Om veiligheidsredenen worden scripts die door anderen kunnen worden overschreven niet uitgevoerd. Gebruik eventueel 'chmod 600' om de rechten van het script aan te passen.

Als je er zelf niet uitkomt

Neem contact op met NederHost als je hulp nodig hebt met het diagnostiseren van dit probleem of als je toch een probleem bij NederHost vermoedt. Vermeld bij je melding in ieder geval de naam van de website en de specifieke URL (inclusief pad) waarop het probleem zich voordoet. Indien mogelijk is het ook handig om aan te geven vanaf welk IP-adres de site benaderd werd toen het probleem optrad en wat (bij benadering) het tijdstip was.