Wie gefällt Ihnen der Artikel?
2
Wie gefällt Ihnen der Artikel?
2

HTTP-Error 500: Wo liegt das Problem?

Die HTTP-Statuscodes informieren darüber, ob eine Anfrage im Internet erfolgreich war, und wenn nicht, was der Fehler ist. Doch sind die Aussagen der Fehlermeldungen nicht immer eindeutig. Das gilt besonders für „500 Internal Server Error“. Diese Fehlermeldung gibt Auskunft darüber, dass bei der Verbindung zum Server ein Fehler aufgetreten ist und deshalb die angeforderte Seite nicht aufgerufen werden kann. Woran es genau liegt, erfährt man jedoch nicht. Glücklicherweise gibt es verschiedene Methoden, um die Ursache zu finden. Wir weisen auf typische Fehlerquellen hin und geben Tipps, wie Sie reagieren sollten, wenn Sie auf den HTTP-Fehler 500 stoßen.

Was bedeutet der Internal Server Error?

Mit Statuscodes teilt der Webserver dem Browser (Client) eines Internetnutzers mit, ob eine Anfrage – also ein Website-Aufruf – erfolgreich war oder nicht. Bekommt der Browser den Status 200 mitgeteilt, weiß er, dass alles gut gelaufen ist. Der Nutzer bekommt diese Meldung aber nicht zu sehen, schließlich erscheinen stattdessen die angefragten Inhalte. Anders sieht es bei den 400er- und 500er-Codes aus. Während erstere auf Fehler beim Client hinweisen, sind letztere serverbedingt. Der Internal Server Error 500 ist dabei ein Sammel-Statuscode für Serverfehler. Deshalb ist auf den ersten Blick auch nicht zu erkennen, wo der Fehler tatsächlich liegt. Man erfährt als Nutzer nur: Der Server meldet einen unerwarteten Fehler.

Falls der Server allerdings den Microsoft Information Service (Microsoft IIS) installiert hat, wird der Fehlercode spezifiziert. Nachkommastellen weisen detaillierter auf die Fehlerursache hin:

  • 500.0: Ein Modul oder eine ISAPI sind fehlerhaft.
  • 500.11: Eine Anwendung wird gerade auf dem Server heruntergefahren.
  • 500.12: Eine Anwendung wird gerade auf dem Server neugestartet.
  • 500.13: Der Webserver ist zurzeit komplett ausgelastet.
  • 500.15: Eine direkte Anforderung für die (optionale) Datei global.asax ist nicht zulässig.
  • 500.19: Daten der Konfiguration sind ungültig.
  • 500.21: Ein Modul wird nicht erkannt.
  • 500.22: Eine HTTP-Modul-Konfiguration (innerhalb einer ASP.NET-Webanwendung) ist im verwalteten Pipelinemodus nicht anwendbar.
  • 500.23: Eine HTTP-Handler-Konfiguration (innerhalb einer ASP.NET-Webanwendung) ist im verwalteten Pipelinemodus nicht anwendbar.
  • 500.24: Eine Identitätswechselkonfiguration (für ASP.NET) ist im verwalteten Pipelinemodus nicht verwendbar.
  • 500.50: Während die RQ_BEGIN_REQUEST-Benachrichtigung verarbeitet wurde, ist ein Fehler beim Neuschreiben aufgetreten.
  • 500.51: Während die GL_PRE_BEGIN_REQUEST-Benachrichtigung verarbeitet wurde, ist ein Fehler beim Neuschreiben aufgetreten.
  • 500.52: Während die RQ_SEND_RESPONSE-Benachrichtigung verarbeitet wurde, ist ein Fehler beim Neuschreiben aufgetreten.
  • 500.53: Während die RQ_RELEASE _REQUEST_STATE-Benachrichtigung verarbeitet wurde, ist ein Fehler beim Neuschreiben aufgetreten.
  • 500.100: In der ASP-Engine ist ein Fehler aufgetreten.

Welche Ursachen führen zum Error 500?

Der „Internal Server Error“ kann beim Verarbeiten der Anfrage durch den Webserver entstehen. Der Sammel-Statuscode umfasst alles, was beim Server ungeplant passieren und damit die Ausgabe der Website verhindern kann. Wahrscheinlich tritt der Server-Error 500 auf, weil in der Konfiguration des Webservers ein Fehler aufgetaucht ist. Hier eine Auswahl an typischen Fehlerquellen:

  • Permission-Fehler: Die Berechtigungen der Hauptdateien und -ordner sind nicht korrekt gesetzt.
  • PHP-Timeout: Das Skript versucht auf eine externe Ressource zuzugreifen und erfährt dabei ein Timeout.
  • Fehler in der Syntax oder dem Code in CGI-/Perl-Scripts: In manchen Fällen sind Skripte fehlerhaft. Besonders Pfade können falsch ausgerichtet sein.
  • PHP-Memory-Limit: Ein Prozess überschreitet den Arbeitsspeicher und kann deshalb nicht korrekt ausgeführt werden.

Bei WordPress-Seiten oder anderen Content-Management-Systemen kann zudem die Installation einer fehlerhaften oder inkompatiblen Erweiterung die Ursache sein: Plug-ins und Themes – besonders von Drittanbietern – können die komplette Website beeinträchtigen.

So können Webmaster den 500 Internal Server Error beheben

Die Besucher Ihrer Website bekommen keine Inhalte mehr zu sehen, sondern nur noch den 500er-Server-Error? Als Betreiber sollten Sie das Problem direkt angehen, denn es werden nicht nur die Besucher Ihrer Website verschreckt, auch Google könnte Sie im Ranking herabsetzen. Bevor Sie als Webmaster Maßnahmen ergreifen, überprüfen Sie zunächst, ob Ihr Server überhaupt noch läuft. Wenn nicht, ist eine schnelle Kontaktaufnahme zu Ihrem Hosting-Anbieter nötig.

Liegt ein interner Fehler vor, sichten Sie zuerst die Log-Dateien: Bei Linux-Servern sollte die Sammlung der Fehlermeldungen unter /var/log/httpd/error_log zu finden sein. Dabei ist es sinnvoll, die Website erneut zu laden, um den HTTP-Error 500 zu reproduzieren und dabei die Erstellung der Log-Datei zu beobachten. So finden Sie die Fehlerquelle recht schnell. Überlegen Sie auch, welche Änderungen Sie kurz zuvor durchgeführt haben. In vielen Fällen sorgen falsch programmierte oder inkompatible Plug-ins für Fehlermeldungen.

Der Error kann auch auftreten, wenn Sie Berechtigungen bei wichtigen Dateien nicht korrekt gesetzt haben. Generell gibt es drei Arten von Rechten:

  • Lesen (r für read)
  • Schreiben (w für write)
  • Ausführen (x für execute)

Diese Berechtigungen können für drei verschiedene Nutzerarten vergeben werden:

  • Besitzer der Datei
  • Gruppe an Nutzern
  • Alle anderen

Die Rechte werden entweder in den Abkürzungen r, w und x oder in entsprechenden Zahlenwerten angegeben: 4 für Lesen, 2 für Schreiben und 1 für Ausführen. Sie werden für jede Nutzerart addiert und nacheinander angegeben: rwxr-xr-x (rwx für den Besitzer, r-x für die Gruppe und r-x für alle anderen) oder 755. Diese Konfiguration (also 755) sollte die Standardeinstellung sein. Wenn die Rechtezuweisung anders gesetzt ist, kann daraus der Fehler entstehen. Ändern können Sie dies mit einem Befehl:

chmod 755 Dateiname

Falls diese Änderung das Problem nicht ändern sollte, können Sie auch für Testzwecke alle Rechte für jede Gruppe freigeben:

chmod 777 Dateiname

Benutzen Sie diese Einstellung aber nur, um das Problem zu lokalisieren. Sie haben damit jedem beliebigen Nutzer erlaubt, die Datei umzuschreiben, was verständlicherweise ein Sicherheitsrisiko darstellt.

Überprüfen Sie als nächstes (falls nicht die Rechteverteilung die Fehlermeldung produziert hat), ob Ihre Skripte richtig laufen. Manchmal entstehen Fehler, weil die Skript-Dateien verschoben, umbenannt oder gelöscht wurden. Überprüfen Sie auch die .htaccess-Datei: Schon ein Syntaxfehler – und mag er noch so klein sein – kann den Internal Server-Error erzeugen. Ein ebenso häufiger Fehler ist die falsche Formatierung der .htaccess-Datei. Diese muss im ASCII- bzw. ANSI-Format erstellt sein, nicht in Unicode. Schreiben Sie daher die Datei in einem Texteditor wie Notepad, Notepad++ oder Sublime Text und nicht in einem Textverarbeitungsprogramm wie Microsoft Word. Um zu testen, ob die Datei verantwortlich für den Error ist, können Sie diese temporär umbenennen und die Website neu laden. Der Server wird nun beim Laden der Website nicht auf .htaccess zugreifen. Sollte die Fehlermeldung nicht mehr auftauchen, können Sie die Datei reparieren oder eine neue erstellen.

Schließlich kann auch ein Timeout zu der Fehlermeldung führen. In diesem Fall ist es gar kein Fehler des Webservers, sondern vielmehr die unterbrochene Verbindung zu einer externen Quelle. Sind PHP-Skripte Ihrer Website so eingestellt sind, dass Sie auf Ressourcen von anderen Servern zugreifen? Eventuell ist die Ressource nicht mehr verfügbar oder die Server-Kommunikation ist aus einem anderen Grund gestört. Eine Möglichkeit, diese Fehlerquelle auszuschließen, ist selbstverständlich, Ihre Seite nicht von auswärtigen Ressourcen abhängig zu machen. Wenn das nicht möglich ist, können Sie das Timelimit Ihres Skripts erhöhen. Zudem ist es sinnvoll, ein effizientes Error-Handling einzubauen, damit können Fehler im PHP-Skript genauer aufgedeckt werden.

Könnte der Arbeitsspeicher überlastet sein? Mit dem Memory-Limit wird festgelegt, wieviel Arbeitsspeicher ein Prozess beanspruchen darf. Sollte mehr RAM gebraucht werden, als zur Verfügung steht, kann ein Internal Server Error die Folge sein. Als temporäre Lösung können Sie das Limit hochsetzen. Dafür fügen Sie einen Befehl nach diesem Muster in die php.ini ein:

memory_limit = 512M

In diesem Beispiel würden Sie den zur Verfügung gestellten Arbeitsspeicher auf 512 MB festlegen. Bedenken Sie aber, dass Ihr Hosting-Provider Ihnen innerhalb des gebuchten Angebots nur ein bestimmtes PHP-Skript-Limit gewährt. Wenn Sie einen höheren Wert eintragen, wird der Webserver diesen ignorieren. Das Hochsetzen des Limits darf zudem nur eine Übergangslösung sein: Sobald Ihre Seite wieder funktioniert, sollten Sie nach dem Grund für den hohen RAM-Anspruch suchen. Mit hoher Wahrscheinlichkeit lässt sich der Fehler im Code Ihrer Website finden.

Sollten Sie durch keine der vorgestellten Methoden zu einer Lösung kommen, ist es eine gute Idee, Ihren Hosting-Anbieter zu kontaktieren. Zuvor können Sie den Status der Server überprüfen: Viele Anbieter von Hosting-Diensten geben den Zustand ihrer Server über eine Statusseite bekannt oder informieren Nutzer per Social Media, wenn ein Problem aufgetreten ist.

Tipp

Auch 1&1 hat eine Statusseite, auf der Kunden des Hostingangebots über aktuelle Probleme informiert werden.

Sollten bereits Serverprobleme bekannt sein, müssen Sie sich in Geduld üben: Ihnen bleibt nichts anderes übrig, als zu warten, bis das IT-Team des Hosts den Fehler behoben hat. Aber auch wenn keine Probleme bei den Servern bekannt sind, kann der Kontakt zum Support hilfreich sein. Teilen Sie diesem dabei mit, welche Maßnahmen Sie bereits selbst unternommen haben. So kann Ihnen schnell geholfen werden.

Wie sollen Internetsurfer bei einem HTTP-Error 500 reagieren?

Als Besucher einer Website können Sie prinzipiell wenig tun, wenn Sie auf einen Internal Server-Error stoßen. Der Webserver, auf dem sich die anvisierte Internetseite befindet, weist eine fehlerhafte Konfiguration auf. Das bedeutet, dass kein Fehler in den Einstellungen Ihres PCs oder der Netzwerkverbindung vorliegt. Deshalb ist für Sie als Internetnutzer die einfachste Lösung meist, die Seite zu einem späteren Zeitpunkt erneut zu laden. Zum einen kann es sein, dass der Webmaster den Fehler inzwischen schon behoben hat. Das ist vor allem bei großen Anbietern sehr wahrscheinlich. Zum anderen kommt es vor, dass Sie zufällig zu einem für den Webserver ungünstigen Zeitpunkt auf die Inhalte zugreifen wollen. Falls Sie gerade den Moment erwischt haben, in dem ein Dienst neu bootet, wird Ihnen die Fehlermeldung angezeigt, obwohl eigentlich alles nach Plan läuft.

Hinweis

Wenn Sie während eines Onlinebestellvorgangs mit der Fehlermeldung konfrontiert werden, dürfen Sie die Webseite nicht neu laden. Sie können schließlich nicht einsehen, an welchem Punkt der Fehler aufgetreten ist. Eventuell ist erst das Laden der Bestätigungs-Page fehlgeschlagen, Ihre Bestellung wurde aber bereits vom System erfasst. Ein Refresh könnte in diesem Fall zu einer doppelten Bestellung führen.

Ebenfalls möglich ist, dass ein plötzlicher extremer Anstieg von Seitenaufrufen den Server in die Knie gezwungen hat. Auch dieses Problem ist meist innerhalb von wenigen Sekunden bereits wieder aus der Welt geschafft – es sei denn, die Website ist dauerhaft überlastet. Wenn Sie auch nach einem Refresh der Seite noch die Fehlermeldung angezeigt bekommen, sollten Sie zunächst den Cache Ihres Browsers löschen. Eventuell lädt der Browser die Website nicht wirklich neu, sondern greift auf seinen internen Speicher zurück. Probieren Sie nach dem Leeren des Caches aufs Neue, die Website aufzurufen.

Wenn nun immer noch „500 Internal Server Error“ angezeigt wird, bleibt Ihnen kaum mehr übrig, als zu warten, bis der Betreiber des Internetauftritts das Problem behoben hat. Mit einem kleinen Trick kommen Sie aber eventuell noch an Inhalte der Webseite. Wenn Sie nicht auf den aktuellsten Stand der (funktionierenden) Seite angewiesen sind, können Sie auf den Cache von Google zurückgreifen. Wenn Sie in die Suchleiste von Google den Befehl cache:, gefolgt von der betreffenden URL eingeben, können Sie auf eine frühere – hoffentlich noch funktionierende – Version der Webseite zugreifen. Sie surfen dann allerdings nicht wirklich auf der Seite, sondern bewegen sich nur innerhalb der Kopie, die sich auf dem Google-Server befindet.

Müssen Sie noch weiter zurückgehen, kann ein Blick in die Wayback Machine des Internet Archives lohnen. Dort sind teilweise Jahrzehnte alte Versionen von Websites zu finden.

Wenn die Website, die Sie besuchen wollen, über einen längeren Zeitraum nicht aufrufbar ist, können Sie selbstverständlich auch den oder die Webmaster kontaktieren. Diesen ist vielleicht noch gar nicht aufgefallen, dass Internetnutzer nicht mehr auf ihr Angebot zugreifen können, weshalb sie sich über Ihren Hinweis freuen.

HTTP Protokolle