500 Internal Server Error

DIREKTE ANTWORT
Ein 500 Internal Server Error bedeutet, dass der Server bei der Verarbeitung der Anfrage auf ein unerwartetes Problem gestoßen ist. Der Browser kann die Ursache in der Regel nicht erkennen. Beginnen Sie daher damit, den Zeitpunkt des Fehlers mit den PHP-, Anwendungs- und Webserver-Logs abzugleichen. Häufige Ursachen sind kürzlich vorgenommene Änderungen an Code, Plugins oder Themes, `.htaccess`-Regeln, Berechtigungen, Ressourcenlimits und Deployment-Einstellungen.
Wichtigste Punkte
- HTTP 500 ist eine allgemeine serverseitige Antwort; die Browsermeldung nennt nur selten die eigentliche Ursache.
- Gleichen Sie den genauen Zeitpunkt des Fehlers mit den PHP-, Anwendungs- und Webserver-Logeinträgen ab, bevor Sie Dateien ändern.
- Kürzlich vorgenommene Änderungen an Plugins, Themes, Modulen, Code, Deployments und
.htaccesssind besonders naheliegende Verdächtige. - Testen Sie jeweils nur eine gezielte Änderung und überprüfen Sie nach jeder Änderung die genau betroffene URL.
- Bewahren Sie detaillierte PHP- und Anwendungsfehler in serverseitigen Logs auf, statt sie Besuchern auf einer Produktionswebsite anzuzeigen.
Site Administrator
Was dieser Fehler bedeutet und wie du ihn erkennst
- Der Browser zeigt eine leere, allgemeine oder gebrandete Seite mit 500 Internal Server Error an.
- Eine zuvor funktionierende Seite fällt nach einer Codeänderung, der Installation oder Aktualisierung eines Plugins oder Themes, einem Deployment oder einer Konfigurationsänderung aus.
- Nur bestimmte URLs, Formulare, Administrationsseiten oder Website-Funktionen schlagen fehl, während der Rest der Website erreichbar bleibt.
- Ein PHP-, Anwendungs- oder Webserver-Log erfasst zum gleichen Zeitpunkt einen fatalen Fehler, Syntaxfehler, ein Berechtigungsproblem, eine fehlende Abhängigkeit oder das Erreichen eines Ressourcenlimits.
- Wiederholte Anfragen liefern dieselbe 500-Antwort, auch wenn bei einem Ressourcenlimit oder einer Anwendungsabhängigkeit sporadische Fehler auftreten können.
Hauptursachen nach Wahrscheinlichkeit
- Fehler in Anwendungscode, Plugin, Theme oder Modul — Ein Syntaxfehler, fataler Fehler, inkompatibles Update oder eine nicht behandelte Bedingung kann verhindern, dass die Anfrage abgeschlossen wird.
- Ungültige Apache-Konfiguration — Eine fehlerhafte oder nicht unterstützte Direktive in
.htaccessoder eine Regel, die ein deaktiviertes Modul voraussetzt, kann eine 500-Antwort auslösen..htaccessgilt für Apache-basierte Setups, nicht für alle Webserver. - Falsche Datei- oder Verzeichnisberechtigungen bzw. falsche Eigentümerschaft — Manuelle Uploads, Migrationen und Deployments können dazu führen, dass der Webprozess erforderliche Dateien nicht lesen kann.
- Erschöpfung des PHP-Speichers oder der Ausführungszeit — Große Importe, aufwendige Abfragen oder ressourcenintensive Erweiterungen können konfigurierte Limits überschreiten; manche Umgebungen liefern in diesem Fall 500 zurück.
- Fehlende Deployment-Konfiguration oder Abhängigkeiten — Geänderte Datenbankzugangsdaten, eine fehlende Umgebungsvariable, ein nicht verfügbares Paket oder eine inkompatible Laufzeitumgebung können die Anwendung beeinträchtigen.
- Unvollständige oder beschädigte Anwendungs- oder CMS-Dateien — Ein unterbrochenes Update kann dazu führen, dass erforderliche Core-Dateien fehlen oder beschädigt sind.
So behebst du den Fehler
1. Umfang und Zeitpunkt bestätigen
Laden Sie die genaue URL, die 500 zurückgibt, erneut und notieren Sie den Zeitpunkt einschließlich Zeitzone. Prüfen Sie, ob die gesamte Website ausfällt oder nur eine Route, ein Formular, eine Administrationsseite, eine Plugin-Funktion oder ein bestimmter Anfragetyp betroffen ist. Ein funktionsspezifischer Fehler macht den zugehörigen aktuellen Code und dessen Abhängigkeiten wahrscheinlicher; ein websiteweiter Ausfall deutet eher auf eine Serverkonfiguration, ein Deployment oder Core-Dateien hin.
2. Zuerst die relevanten Logs prüfen
Prüfen Sie das PHP-error_log, das Webserver-Fehlerlog sowie das auf dem Host verfügbare Anwendungs- oder CMS-Log. Häufige Speicherorte sind /var/log/apache2/error.log für Apache und /var/log/nginx/error.log für Nginx, allerdings unterscheiden sich die Strukturen je nach Hosting. Gleichen Sie die Einträge mit dem Zeitpunkt des Fehlers ab und notieren Sie Datei, Zeilennummer, Exception, Upstream-Meldung oder Konfigurationsdirektive. Die allgemeine Browserseite allein reicht nicht aus, um die Ursache zu ermitteln.
3. Eine kürzlich vorgenommene Code- oder Erweiterungsänderung isolieren
Wenn das Log eine Datei, ein Plugin, ein Theme, ein Modul oder eine Deployment-Änderung nennt, machen Sie diese Änderung rückgängig oder deaktivieren Sie die genannte Komponente in einer testbaren Umgebung. Verwenden Sie bei einem CMS den Administrationsbereich, sofern er verfügbar ist. Falls der Administrationsbereich nicht erreichbar ist, können Sie das betreffende Komponentenverzeichnis möglicherweise per SFTP oder über den Dateimanager des Hostings umbenennen. Ändern Sie jeweils nur eine Komponente und testen Sie anschließend die fehlerhafte URL erneut. Verschwindet der Fehler, prüfen Sie vor der erneuten Aktivierung Kompatibilität, Konfiguration und verfügbare Updates.
4. .htaccess nur unter Apache testen
Wenn das Log auf einen .htaccess-Parserfehler hinweist oder der Fehler nach einer Änderung an einer Apache-Regel begann, erstellen Sie eine Sicherung und benennen Sie .htaccess vorübergehend über SFTP oder den Dateimanager des Hostings in .htaccess.bak um. Testen Sie die Seite erneut. Funktioniert sie, stellen Sie die Datei sorgfältig wieder her oder erstellen Sie sie neu und fügen Sie benutzerdefinierte Direktiven schrittweise hinzu. Eine nicht unterstützte Direktive oder ein fehlendes Apache-Modul kann die zugrunde liegende Ursache sein. Wenden Sie diesen Schritt nicht bei einem reinen Nginx-Setup an, da .htaccess dort nicht zur Konfiguration von Anfragen verwendet wird.
5. Berechtigungen und Eigentümerschaft sorgfältig korrigieren
Wenn das Log einen Fehler bei Berechtigungen oder Eigentümerschaft meldet, vergleichen Sie den betroffenen Pfad mit einer funktionierenden Datei oder den dokumentierten Einstellungen des Hosting-Anbieters. 644 für Dateien und 755 für Verzeichnisse sind häufige Einstellungen, die korrekten Werte hängen jedoch vom Host und vom Deployment-Modell ab. Korrigieren Sie den betroffenen Pfad per SFTP, SSH oder über den Dateimanager des Hostings. Machen Sie Dateien oder Verzeichnisse nicht als Abkürzung global beschreibbar.
6. PHP- und Ressourcenlimits der Anwendung untersuchen
Wenn das Log auf eine Speichererschöpfung, eine maximale Ausführungszeit oder ein ähnliches Limit hinweist, ermitteln Sie den Vorgang, der die Ressource verbraucht, etwa einen großen Import oder eine aufwendige Plugin-Aufgabe. Passen Sie memory_limit oder max_execution_time in der zutreffenden php.ini, .user.ini, Hosting-Einstellung oder Deployment-Konfiguration nur an, wenn Ihr Host dies erlaubt. Reduzieren Sie außerdem die Arbeitslast oder beheben Sie den ineffizienten Vorgang; eine reine Erhöhung des Limits verschiebt den Fehler möglicherweise nur.
7. Deployment-Einstellungen und erforderliche Dateien vergleichen
Vergleichen Sie bei Fehlern, die nach einem Deployment oder einer Migration begonnen haben, Umgebungsvariablen, Datenbankzugangsdaten, Laufzeitversionen, installierte Abhängigkeiten, Dateipfade und erzeugte Konfigurationen mit der funktionierenden Umgebung. Stellen Sie sicher, dass erforderliche Dateien vorhanden sind und die Anwendung die konfigurierte Datenbank oder den konfigurierten Dienst erreichen kann. Verwenden Sie die im Log genannte fehlende Variable, das fehlende Paket oder den Verbindungsfehler als Ausgangspunkt, statt nicht zusammenhängende Einstellungen zu ändern.
8. Beschädigte Dateien erst nach Sicherung der Belege wiederherstellen
Wenn ein unvollständiges Update oder eine beschädigte Core-Datei angezeigt wird, speichern Sie das relevante Log und eine Kopie der aktuellen Dateien, bevor Sie Reparaturen vornehmen. Stellen Sie anschließend bekannte fehlerfreie Dateien wieder her oder führen Sie den vom System unterstützten Update-Prozess erneut aus; verwenden Sie, falls vorhanden, ein Backup. Testen Sie die ursprüngliche URL erneut und prüfen Sie, ob kein neuer passender Fehler in das Log geschrieben wird.
Vorbeugung und Überprüfung der Lösung
- Sichern Sie Dateien und Datenbank, bevor Sie ein Plugin, Theme, Modul oder eine CMS-Komponente installieren oder aktualisieren.
- Testen Sie Code- und
.htaccess-Änderungen nach Möglichkeit auf einer Staging-Kopie und bewahren Sie eine bekannte funktionierende Konfiguration für ein Rollback auf. - Stellen Sie Konfigurationsvariablen und Abhängigkeiten in den verschiedenen Umgebungen einheitlich bereit und überprüfen Sie nach Migrationen, ob alle erforderlichen Dateien vorhanden sind.
- Überwachen Sie PHP-, Anwendungs- und Webserver-Fehlerlogs, statt sich ausschließlich auf externe Verfügbarkeitsprüfungen zu verlassen.
- Nehmen Sie jeweils nur eine Änderung vor, dokumentieren Sie, was geändert wurde, und testen Sie die genau betroffene URL erneut.
- Bewahren Sie detaillierte Diagnosedaten in serverseitigen Logs auf, statt sie Besuchern auf einer Produktionswebsite anzuzeigen.
Wann externe Hilfe sinnvoll ist
Wenden Sie sich an Ihren Hosting-Anbieter oder den Entwickler der Anwendung, wenn Sie keinen Zugriff auf die relevanten Logs haben, der Fehler nach dem Rückgängigmachen der letzten bekannten Änderung bestehen bleibt oder das Log auf ein hostseitiges Modul-, Berechtigungs-, PHP-Laufzeit-, Datenbank- oder Ressourcenproblem hinweist, das Sie nicht ändern können. Geben Sie die genaue URL, den Zeitpunkt des Fehlers einschließlich Zeitzone, die letzten Änderungen und den relevanten Logeintrag an. Senden Sie keine Passwörter, API-Schlüssel oder anderen vertraulichen Umgebungswerte. Wenn der Fehler nach einer Migration oder einem Deployment begann, sollte die verantwortliche Person die funktionierende und die fehlerhafte Umgebung vergleichen.
Häufig gestellte Fragen
Was bedeutet ein 500 Internal Server Error?
Es bedeutet, dass der Server bei der Verarbeitung der Anfrage auf eine unerwartete Bedingung gestoßen ist und dem Browser keine spezifischere Antwort liefern konnte. Der Statuscode nennt die eigentliche Ursache nicht; das zugehörige Server- oder Anwendungslog enthält in der Regel die hilfreichen Details.
Wird ein 500-Fehler durch meinen Browser oder meine Internetverbindung verursacht?
In der Regel nicht. HTTP 500 weist auf ein Problem hin, das bei der Verarbeitung der Anfrage auf dem Server aufgetreten ist. Rufen Sie die genaue URL erneut auf, um das Verhalten zu bestätigen, konzentrieren Sie die Fehlersuche jedoch auf die Logs von Server, Anwendung, Konfiguration und Deployment.
Warum tritt ein 500-Fehler nach dem Bearbeiten von .htaccess auf?
Unter Apache kann eine ungültige Direktive, eine fehlerhafte Regel oder eine Regel, die von einem nicht verfügbaren Modul abhängt, die Verarbeitung der Anfrage verhindern. Sichern Sie die Datei, benennen Sie sie vorübergehend um und prüfen Sie das Apache-Fehlerlog, bevor Sie die Regeln neu erstellen. Dies gilt nicht für reine Nginx-Konfigurationen.
Wie behebe ich einen 500-Fehler, der durch ein WordPress-Plugin oder -Theme verursacht wird?
Verwenden Sie nach Möglichkeit das PHP- oder Anwendungslog, um die Komponente zu identifizieren. Deaktivieren Sie das betreffende Plugin oder Theme oder machen Sie die Änderung rückgängig. Wenn der Administrationsbereich nicht verfügbar ist, verwenden Sie SFTP oder den Dateimanager. Testen Sie anschließend die fehlerhafte URL erneut. Wenn sich die Website erholt, prüfen Sie vor der erneuten Aktivierung Kompatibilität, Konfiguration und verfügbare Updates.
Können falsche Berechtigungen einen 500 Internal Server Error verursachen?
Ja. Wenn der Webprozess eine erforderliche Datei oder ein erforderliches Verzeichnis nicht lesen oder ausführen kann, kann die Anfrage fehlschlagen. Korrigieren Sie den betroffenen Pfad mit den vom Hosting-Anbieter erwarteten Einstellungen für Eigentümerschaft und Berechtigungen. Alles beschreibbar zu machen, ist keine sichere allgemeine Lösung.
Was soll ich tun, wenn ich das Fehlerlog nicht sehen kann?
Bitten Sie Ihren Host, die PHP-, Anwendungs- und Webserver-Logs für Ihr Konto zum genauen Zeitpunkt des Fehlers zu prüfen. Bei Shared-Hosting-Panels sind möglicherweise nicht alle Logs sichtbar, auch wenn der Anbieter sie abrufen kann.
Weitere Dokumentation
Für maßgebliche, umgebungsspezifische Details konsultieren Sie die Dokumentation des verwendeten Webservers, etwa des Apache HTTP Server oder von Nginx, sowie die PHP-Dokumentation zur Fehlerprotokollierung und zu Laufzeitlimits. Lesen Sie außerdem die Dokumentation des relevanten CMS, Frameworks, Hosting-Control-Panels oder der Deployment-Plattform zu Speicherorten von Logs, dem Berechtigungsmodell, dem Wiederherstellungsprozess und den Konfigurationsanforderungen.