WordPress ist ein richtig geiles und normalerweise auch sehr sicheres CMS. Normalerweise kann man da nicht viel kaputt machen. Sobald man selbst an den Templates und den Core-Dateien herumschraubt oder sich Plugins nicht vertragen, kann es aber doch passieren: Website down, Internal Server Error 500. Höchste Alarmstufe! Insbesondere, wenn du nicht mehr in den Admin-Bereich kommst und du dich daher völlig ausgesperrt fühlst. Der Stresspegel steigt und du fürchtest um die Inhalte, die du womöglich in jahrelanger Arbeit aufgebaut und gepflegt hast.
Aber: Keine Panik! Erstmal durchatmen, man kann das Problem fixen. Der Inhalt deiner Seite ist von diesem Fehler nicht betroffen. Du wirst alles wieder so hinbekommen wie vorher.
Wenn deine Seite gerade down ist, dann willst du das schnell fixen, ist klar. Klicke also unten gleich auf die Lösungsmöglichkeiten und arbeite dich da durch. Trotzdem finde ich es pro forma wichtig, davor auch kurz zu erklären, wie WordPress aufgebaut ist und funktioniert. Wissen bedeutet immer Sicherheit :-) Dann kannst du die Schritte selbst besser nachvollziehen.
[toc]
Internal Server Error 500 kann alles mögliche bedeuten. Was das Problem ist, sagt diese Fehlermeldung uns erstmal nicht. Ich hatte auch schon 2x einen Internal Server Error 500 und bin ihn beide Male ohne schwere Verluste wieder losgeworden. Allerdings musst du mit Bedacht rangehen und du benötigst FTP-Zugang zu deinem Server (z.B. mit Filezilla), um das Problem zu fixen.
Es gibt bereits viele Seiten, die detailliert auflisten, welche Schritte man am besten vornehmen kann (zB. diese, wer des Englischen mächtig ist) und die auch die technischen Hintergründe erläutern. Daher will ich nur einen kurzen Überblick geben und vor allem zeigen, was bei meinem gestrigen, fast ganztägigen Website-Ausfall geholfen hat.
So funktioniert eine WordPress-Seite
Deine Site besteht aus zwei Komponenten:
- die SQL-Datenbank enthält die deine Beiträge und Seiten
- die WordPress-Installation ist das Content Management System (CMS), das deine Inhalte im Internet darstellt und mit dem du deiner Seite weitere Inhalte hinzufügen kannst
Diese beiden Komponenten sind voneinander getrennt. Die SQL-Datenbank ist Bestandteil deines Webspace-Paketes und du kannst über einen Anbieter darauf zugreifen. Die WordPress-Installation liegt dagegen direkt auf dem Webspace. Während die Datenbank einfach „da“ ist – sie gehört schließlich zu deinem Vertrag -, musst du WordPress, oder ein anderes CMS, in der Regel erst installieren.
Die SQL-Datenbank – Das Herzstück deiner Website
Die beiden Komponenten haben auch einen unterschiedlichen Nutzen. Eine ganz neue WordPress-Seite hat noch nicht wirklich Inhalte, die fügst du ja erst hinzu. Mit der Zeit schreibst du Texte, vielleicht legst du weitere Benutzer/Redakeure an, die ebenfalls Texte schreiben und Nutzer kommentieren deine Beiträge. All diese schriftlichen Inhalte, Nutzerdaten und auch Links zwischen den Beiträgen oder zu Bildern werden in der Datenbank gespeichert.
Die Datenbank ist damit das Herzstück deiner Website – sozusagen die Schatztruhe, die sich stetig weiter füllt. Dennoch bekommst du die Datenbank normalerweise gar nicht zu Gesicht. Das wäre auch relativ langweilig, denn die SQL-Datenbank ist „nur“ eine Ansammlung von mehreren Tabellen, in denen jede Zeile für einen einzelnen Beitrag oder einen Kommentar oder einen Nutzer stehen. Die Datenbank speichert eben … Daten. In Textform. Also keine Medien wie Bilder usw.
Die WordPress-Installation auf dem Webserver
Damit die Daten auf einer Website erscheinen, benötigst du WordPress oder ein anderes CMS. Das CMS hat folgende Funktionen:
- Daten in der Datenbank verwalten (neue Daten rein, ältere Daten ändern oder löschen)
- Medien verwalten (hochgeladene Bilder, PDFs, Videos)
- Daten aus der Datenbank und Medien als Website im Internet darstellen
WordPress ist also die Schnittstelle zwischen Daten und Medien und somit der „Maschinenraum“ deiner Website. Jede WordPress-Installation besteht aus drei standardmäßigen Ordnern sowie einigen Dateien im Hauptverzeichnis. Das ist wichtig für die Lösungsmöglichkeiten unten, deswegen möchte ich kurz darauf eingehen. Schau es dir auf dem Webserver an:
Der Ordner wp-content enthält individuelle Inhalte, die du selbst hinzugefügt hast: Alle Medien (/wp-content/uploads/), deine installierten Plugins (/wp-content/plugins/) und auch das Theme (wp-content/themes/). Auf diesen Ordner solltest du gut aufpassen! Unbedachtes Vorgehen kann dich viel Arbeit kosten. Wenn wir uns WordPress wie ein Auto vorstellen, dann sind das Farben, Materialien und individuelle Ausstattungspakete. Wäre viel Arbeit, das alles wiederherzustellen.
/wp-admin und /wp-includes sind Ordner mit Funktionsdateien (WordPress Core). Sie sind notwendig, damit WordPress funktioniert – sozusagen der Motor. Man kann einen Motor aber problemlos gegen einen baugleichen Motor austauschen, ohne den individuellen Look des Fahrzeugs zu verlieren.
Die wp-config.php dagegen ist wieder wichtig. Sie enthält die Zugangsdaten zu deiner Datenbank – sozusagen die Steuerelektronik im Auto. Löschst du sie, funktioniert deine Website nicht mehr. Natürlich kannst du die Zugangsdaten auch in eine neue wp-config eintragen, und den Zugang damit wieder herstellen, aber das sind unnötige Stressmomente.
So, jetzt kennst du die Grundlagen für das ganze WordPress Internal Server Error 500-Wirrwarr.
Woher kommt der Internal Server Error 500?
Internal Server Error 500 bedeutet, dass irgendwas nicht funktioniert – klar. Die gute Nachricht ist, dass dieser Fehler immer nur in grundlegenden Funktionen zu suchen ist, also niemals in deiner SQL-Datenbank oder in deinen Medien. Deine Inhalte sind also sicher! Von deiner Datenbank und deinem /wp-content/uploads/-Ordner solltest du also unbedingt die Finger lassen!
Eine mögliche Fehlerursache ist, dass der physische Server nicht erreichbar ist oder Fehler hat. Das ist bei seriösen Webspace-Anbietern aber fast auszuschließen.
Daher liegt das Problem an deiner WordPress-Installation oder der Serverkonfiguration im weitesten Sinne. Das können schlecht programmierte Plugins sein, die sich untereinander stören, auch eine Plugin-Aktualisierung kann das Problem hervorrufen. Aber auch im Theme kann irgendwas kaputt sein, und ohne Theme lädt die Seite nicht. Du siehst, die Schuld an der Misere muss nicht mal bei dir liegen. Und das alles lässt sich testen. Vielleicht wirst du am Ende noch immer nicht ganz genau wissen, was dein WordPress abgeschossen hat, aber fixen kannst du es auf jeden Fall!
Das einzige Problem mit einem Internal Server Error 500 ist eben, dass die Seite nicht aufrufbar ist und dir damit Besucher und vielleicht auch Verkäufe entgehen. Außerdem kann er zu Rankingverlusten führen: Wenn der Googlebot merkt, dass ein 500-Fehlercode gesendet wird, löscht er die entsprechende Seite sofort aus dem Index. Es ist also Eile geboten!
Lösungsmöglichkeiten für Error 500 mit WordPress
Die folgenden Tests und Problemlösungsversuche lassen sich mit FTP-Zugang relativ schnell durchführen. Ich würde in genau dieser Reihenfolge von unkompliziert zu zeitaufwendig vorgehen :D
Bevor du loslegst, solltest du zur Sicherheit alle Inhalte auf dem Server, also den gesamten WordPress-Ordner mit allen Dateien und Unterordnern, in einen Backup-Ordner auf deiner Festplatte runterladen. Nur zur Sicherheit. Dann kannst du zur Not alles wiederherstellen.
Plugins deaktivieren
Da oft Plugins den Internal Server Error verursachen können, deaktiviere einfach alle Plugins. Das geht am schnellsten per FTP. Die Plugins befinden sich – wie oben beschrieben – in Hauptverzeichnis > wp-content > plugins. Benenne den plugins-Ordner einfach um in plugins_temp. Dadurch findet WordPress keinen Plugin-Ordner und arbeitet, als wären keine Plugins aktiviert. Lade deine Seite neu und schau, was passiert.
Funktioniert sie wieder? Gut, jetzt musst du nur noch herausfinden, welches Plugin das Problem verursacht hat. Erstelle einen neuen plugin-Ordner auf dem Server und kopiere ein Plugin nach dem anderen aus plugins_temp in plugins. Nach jedem kopierten Plugin lädst du deine Seite neu. Wenn du wieder einen Error 500 bekommst, dann war es das zuletzt kopierte Plugin. Offenbar ist es fehlerhaft. Du könntest es neu runterladen, oder du suchst dir eine Alternative.
Ist die Seite noch immer fehlerhaft, obwohl du die Plugins deaktiviert hast? Dann weißt du, die Plugins sind nicht schuld. Lass sie trotzdem noch deaktiviert, während du weitertestest, um sie als wie auch immer geartete Fehlerquellen auszuschließen und mit deiner möglichst schlanken Seite zu arbeiten.
.htaccess-Datei
Die .htaccess-Datei ist eine Konfigurationsdatei für den Apache-Webserver. Sie stellt eine Art Wegweiser für Besucher (und Crawler) dar. Man kann darin zB. den Zugriff von außen auf bestimmte Bereiche der Webseite beschränken oder Umleitungen für neue URLs einbauen. Normale WordPress-Nutzer haben nicht viel mit dieser Datei zu tun, weil der Umgang nicht ganz unkompliziert ist und es für alles auch einfachere Plugins gibt.
» Weitere Infos zur .htaccess-Datei
Eine falsch konfigurierte .htaccess-Datei kann aber auch den Internal Server Error 500 hervorrufen. Das finden wir sehr einfach heraus. Die Datei liegt im Hauptverzeichnis eurer WordPress-Installation, also in dem Ordner, in dem sich die WordPress-Unterordner
- wp-admin
- wp-includes
- wp-content
befinden. Ggf. musst du deinem FTP-Programm erst sagen, dass es auch versteckte Dateien anzeigen soll. Benenne die .htaccess einfach um, z.B. in .htaccess_old, und lade deine Webseite neu.
Funktioniert deine Seite wieder? Glückwunsch, das ging dann schnell. Du brauchst nun eine neue .htaccess-Datei. Auch das geht sehr einfach, lass einfach WordPress für dich arbeiten. Gehe zu Einstellungen > Permalinks und klicke, ohne etwas zu ändern, auf Änderungen übernehmen.
Wenn du zuvor manuell etwas in die .htaccess geschrieben hast, dann musst du diese Inhalte natürlich wieder einfügen: Per Trial und Error fügst du nach und nach Anweisungen aus der alten Backup-.htaccess ein und schaust, wann/ob erneut das Problem auftritt.
Funktioniert die Seite noch nicht? Dann geht es weiter mit dem Testen. Schade.
PHP-Speichergröße
Wenn aus irgendeinem Grund WordPress zu viele Ressourcen verbraucht und an die zugewiesene Grenze kommt, funktioniert es nicht mehr. Man kann sehr einfach und schnell checken, ob einfach die PHP-Speichergröße zu klein ist.
Lokalisiere im WordPress-Hauptverzeichnis die Datei wp-config.php, lade sie auf die Festplatte und öffne sie mit einem Texteditor (nicht Word o.ä., nimm den normalen, einfachen Editor) und kopiere direkt in die zweite Zeile unter <?php folgende neue Zeile:
define('WP_MEMORY_LIMIT', '64M');
Damit erhöhst du den zugewiesenen Speicher. Speichere die wp-config.php und lade sie wieder auf den Server. Aktualisiere die Seite.
Funktioniert sie nun wieder? Gut! Aber das ursprüngliche Problem ist nicht gelöst. Du musst herausfinden, welche Komponente so viel Speicher benötigt. Wie das geht, müsstest du googeln, ich weiß es nicht :D
Funktioniert die Seite nicht? Ok, dann liegt es nicht am Speicher. Du kannst die kopierte Zeile wieder entfernen und die Datei wieder hochladen – der Zusatz wird ja nicht benötigt.
Permissions
Ich habe gelesen, dass auch falsche Datei-Permissions auf dem Server den Fehler verursachen können – das ist allerdings selten. Fehlen beispielsweise, warum auch immer, Schreib- oder Leserechte für wichtige Dateien, kann WordPress nicht richtig arbeiten und meldet den Server Error. Wenn aber zuvor bereits alles funktioniert hat, dann ist es wirklich sehr unwahrscheinlich, dass es jetzt auf einmal ein Rechteproblem gibt.
Trotzdem kannst du das schnell checken, um sicherzugehen. Schau einfach nach, ob bei deinen Dateien und Ordnern im WordPress-Hauptverzeichnis als Berechtigung 644 oder 755 steht – das sind die richtigen Permissions.
Sind sie falsch, musst du weiter googeln, wie man damit umgeht – damit kenne ich mich nicht aus :D
Server-Logs prüfen
Du hast jetzt alles geprüft, was schnell zu prüfen ist. Spätestens jetzt solltest du in die Server-Logs schauen. Viele Webspace-Anbieter bieten die Logs im Kundenbereich zum Download an. Wenn das geht, schau dir an, was in den Fehlermeldungen steht.
Dazu braucht man auch keine Programmierkenntnisse. Irgendwann kommt immer die gleiche Fehlermeldung. Dort steht meistens, welche Datei das Problem verursacht hat. Bei mir war es die functions.php meines Themes.
Wenn du die entsprechende Datei noch als früheres Backup irgendwo hast, lade sie hoch und überschreibe die fehlerhafte Datei. Wenn sonst keine anderen Fehlermeldungen da waren, müsste die Seite wieder gehen. Ich hatte zufällig am Tag zuvor noch ein Backup gemacht und meine Seite konnte dadurch wiederhergestellt werden – nur manche Einstellungen waren weg.
WordPress Core-Dateien neu hochladen
Falls du nicht an die Server-Logs rankommst oder sich deren Fehlermeldung auf eine WordPress Core-Datei bezieht, kannst du diese Core-Dateien einfach neu hochladen. Du überschreibst dann die (möglicherweise) fehlerhafte Datei mit frischen Daten einer unberührten und schlanken WordPress-Installation.
Damit du keine Daten und Einstellungen verlierst, ist es wichtig,
- vorher ein Backup aller Daten auf dem Server durchzuführen
- ausschließlich die Ordner /wp-admin und /wp-includes zu ersetzen (die WordPress Core-Dateien, siehe oben)
Lade einfach eine frische WordPress-Installation herunter. Wichtig: Lade die Version, die du auch im Moment nutzt, also zB. 4.81. Nutzt du eine ältere WordPress-Installation, musst du auch eine ältere herunterladen. Entpacke die Dateien auf deiner Festplatte.
Damit deine Inhalte, wie Plugins und Bilder, bestehen bleiben, rühre den wp-content-Ordner auf dem Server nicht an. Auch die Dateien im Hauptverzeichnis sind tabu. Lösche nur die Ordner /wp-admin und /wp-includes.
Lade nun diese beiden Ordner der frischen WordPress-Installation auf den Server. Teste, ob es geht.
Andere Ursachen
Tatsächlich hatte ich es auch schon, dass ganz andere Ursachen zu einem Internal Server Error 500 geführt haben. Wie gesagt, die Ursachen können sehr unterschiedlich sein. Die Fehlermeldung in den Error-Logs ist dann dein bester Freund und hilft dir bei der Google-Suche nach der Ursache. Manchmal gibt es auch ganz merkwürdige temporäre 500-Fehler, die von allein wieder verschwinden, aber vielleicht immer wieder auftauchen. Dann solltest du dich mit deinem Provider in Verbindung setzen.
Gefällt dir mein Beitrag?
Mit einem Kaffee würdest du mich sehr glücklich machen! :D
Zusammenfassung
Bei mir hat sich der Internal Server Error 500 immer entweder durch das
- Überschreiben einer fehlerhaften Theme/Plugin-Datei oder
- Hochladen einer neuen WordPress-Installation
beheben lassen. Alle anderen Ursachen kann man leicht, wie beschrieben, per FTP nachprüfen.
Ich habe am Ende auch die .htaccess wie oben beschrieben neu generieren lassen – zur Sicherheit, da meine alte irgendwie sehr groß geworden ist. Solltest du die .htaccess umbenannt haben oder sie gelöscht haben, kann es sein, dass deine Startseite funktioniert, alle anderen Seiten aber nicht erreichbar sind (Internal Server Error 500) – das liegt dann daran, dass keine .htaccess gefunden wurde. In diesem Fall ist natürlich das Generieren einer neuen .htaccess obligatorisch.
Viel Glück :D
Schreibe einen Kommentar