Fehler 500 – Internal Server Error und Fehler 503 – Service Unavailable
Jeder Fehler ist ärgerlich, aber manche sind ärgerlicher. Solche, die Besucher wie auch Betreiber von Websites mit dem Fehlercode 500 – Internal Server Error begrüßen, sind besonders gemein. Denn im Prinzip sagt die Meldung erst einmal nichts anderes aus als: »Etwas ist schief gegangen, aber es ist unklar, was genau.« Lediglich die 5 am Anfang des Codes verrät, dass das Problem ziemlich sicher auf Seiten des Servers liegt.
Error 500 – die Auffangstelle für unbekannte Fehler
Beim Fehlercode 500 handelt es sich um einen Pool, in dem jeder (serverseitige) Fehler landet, der keiner anderen Kategorie zugeordnet werden kann. Weiterführende Informationen würden etwa bei Verwendung des Microsoft Information Service geboten. Dabei wird, getrennt durch einen Punkt, ein zusätzlicher Untercode angezeigt, der das Problem eingrenzt (also z. B. Error 500.11 – Application is shutting down on the web server).
Ohne zusätzliche Informationen lässt sich für dich als Betreiber das Auftreten des Fehlers im Idealfall auf etwas zurückführen, das kürzlich geändert wurde. Hast du gerade ein neues Plugin installiert? Oder ein neues Design? Oder hast du an der .htaccess-Datei gearbeitet? Gemeinsam mit den Log-Dateien sollte sich in so einem Fall rasch herausfinden lassen, wo denn nun etwas im Argen liegt.
Plugins und Themes
Gerade im Zusammenhang mit Plugins oder Designs von Dritten ist es wichtig, sich folgendes vor Augen zu halten. Viele davon, die oft und gerne bei WordPress oder anderen CMS-Systemen verwendet werden, sind bisweilen nicht ganz fehlerfrei. Auch Quereffekte sind nicht auszuschließen, wenn etwa mehrere davon im Einsatz sind, die aber nicht gut zusammenarbeiten. Hier lohnt es sich, ein »Weniger ist mehr«-Prinzip zu realisieren.
.htaccess-Datei
Probleme in der .htaccess-Datei lassen sich häufig auf schlichte Syntaxfehler zurückführen. Beispielsweise können ein falsch gesetzter Punkt oder eine Raute # zu viel oder zu wenig das ganze Ding schon in den sprichwörtlichen Abgrund reißen.
Aber auch die Zeichencodierung stellt häufig ein Problem dar. Die .htaccess-Datei muss in ASCII bzw. ANSI codiert sein. Sollte sie aber mit einem Textverarbeitungsprogramm wie MS Word gespeichert worden sein, kann das dazu führen, dass plötzlich Unicode verwendet wird. Um so einer ungewollten Änderung des Zeichensatzes vorzubeugen, empfiehlt es sich, das File nur mit »primitiven« Editoren wie z. B. Notepad zu bearbeiten.
Fehler in der Programmierung
Auch Skriptfehler können den Error 500 verursachen. Manchmal liegt es lediglich daran, dass die entsprechenden Dateien verschoben wurden, und dadurch die angegebenen Pfade nicht mehr stimmen. Aber natürlich ist auch ein Programmierfehler nie auszuschließen – in dem Fall musst du wohl oder übel nochmal Hand an den Code legen.
Apropos »Hand an den Code legen«: Ähnlich wie die .htaccess-Datei sollten auch Scripte in ASCII oder ANSI-Format vorliegen. Denn auch hier kann der benutzte Zeichensatz eine potentielle Fehlerursache sein.
Ressourcen
Nicht zuletzt kann es auch an Ressourcenproblemen liegen. Falls etwa nicht genug Arbeitsspeicher zur Verfügung steht, um die nötigen Prozesse auszuführen, geht der Server auch schon mal in die Knie und wirft einen 500er zurück. Das wiederum könnte sich natürlich auch auf fehlerhafte Programmierung zurückführen lassen.
Ungenügende Ressourcen können aber auch zu einem anderen Fehler führen, über den es im zweiten Teil dieses Beitrags gehen soll.
Error 503 – Service unavailable
Glücklicherweise sind nicht alle Fehlercodes so allgemein gehalten wie der 500er. Über einige davon wurde ja bereits in früheren Beiträgen geschrieben. Ein weiterer davon wäre der Fehler 503 – Service Unavailable.
Zunächst einmal wirkt auch dieser Fehler ein bisschen allgemein: Da ist irgendetwas »unavailable«, also nicht verfügbar. Das ist dann der Fall, wenn der Server nicht in der Lage ist, die Anfragen eines Clients (z. B. eines Besuchers deiner Website) zu verarbeiten. Das mag zwar auf den ersten Blick so wirken, als handle es sich auch nur um eine vage Beschreibung im Stil des 500ers, aber tatsächlich sind hier die möglichen Ursachen wesentlich eingegrenzter.
Server ist ausgeschaltet
Das Offensichtliche zuerst: Ein Server ist natürlich dann »unavailable«, wenn er nicht läuft oder die Verbindung mit dem Internet getrennt wurde. Das kann durchaus beabsichtigt und geplant sein, wenn etwa gerade Wartungsarbeiten (z. B. Updates) durchgeführt werden.
Dabei handelt es sich um eine kontrollierte Situation, die von Zeit zu Zeit einfach notwendig ist. Das Gute daran ist, dass du deine Besucher darüber informieren kannst, indem du eine entsprechende Fehlerseite gestaltest. So werden sie sich nicht mit einem nichtssagenden Fehlercode konfrontiert, sondern sehen, dass gerade gearbeitet wird. Im Idealfall gibst du auch noch einen voraussichtlichen Zeitpunkt an, ab dem alles wieder zur Verfügung steht.
Eine andere mögliche Ursache für den Fehler 503 besteht darin, dass der Server ausgelastet ist. Der Grund dafür kann entweder Grund zur Freude oder zur Besorgnis sein.
Serverauslastung – die positive Variante
Im besten Fall interessieren sich so viele Menschen für dein Online-Angebot, dass der Server den Besucheransturm nicht mehr bewältigen kann. Gratuliere, du solltest dich mit deinem Hosting-Anbieter in Verbindung setzen, um die Ressourcen aufzustocken. Um erst gar nicht in diese Situation zu kommen (damit ist natürlich nicht das erhöhte Interesse gemeint, sondern dass du davon überrascht wirst), solltest du immer auch deine Besucherzahlen im Auge behalten. So kannst du dich schon frühzeitig auf diesen Fall einstellen.
Serverauslastung – die negative Variante
Der weniger erstrebenswerte Fall ist ein DoS-Angriff auf dein Online-Angebot. Bei so einer Denial of Service Attacke wird der Server mit Anfragen geflutet, sodass alle Ressourcen für die Bearbeitung verwendet werden. Das Ziel davon ist, es so weit zu treiben, bis die Kapazitäten aufgebraucht sind und er schließlich in die Knie geht.
Wenn du Grund zur Annahme hast, dass dies der Fall ist, solltest du dich um die Erhöhung der Sicherheit kümmern. Da diese Angriffe häufig Programmfehler im betroffenen System ausnutzen, empfiehlt es sich, es möglichst aktuell zu halten. Wende dich auch an deinen Hosting-Anbieter, um weitere geeignete Schritte zu unternehmen.
Fehlerhafte Programmierung
Aber auch ohne einen externen Angreifer können Programmfehler oder auch nur ungünstige Programmierung in deinem System den Fehler 503 verursachen. Und die müssen nicht einmal von dir selbst verursacht worden sein. Externe Plugins und Erweiterungen, die beispielsweise eine (unnötig) hohe Anzahl an Datenbankzugriffen durchführen, können ebenso schuld daran sein, wie ein Bug, der sich in ein eigenes Skript eingeschlichen hat.
Und als Besucher?
Wenn du als Besucher einer Website mit dem Fehler 503 konfrontiert bist, kannst du eigentlich nur eines tun: Geduld haben. Versierte Anwender könnten versuchen, in den Internet-Optionen ihres Geräts den DNS-Server zu ändern. Meistens reicht es aber, kurz zu warten und dann auf Reload zu klicken, damit du das gewünschte Online-Angebot doch noch in Anspruch nehmen kannst.
Günter Gerstbrein
Günter Gerstbrein, Jahrgang 1977, studierte technische Mathematik an der TU Wien und war etwa 13 Jahre in der Software-Entwicklung tätig. Als „Texter, der aus der Technik kam“ ist es sein Ziel, komplizierte Sachverhalte leicht verständlich und ohne viel Techno-Babble zu vermitteln.