Was bedeutet der 500 Internal Server Error?
Der HTTP-Statuscode 500 (Internal Server Error) ist eine allgemeine Fehlermeldung des Webservers. Er signalisiert, dass bei der Verarbeitung einer Anfrage ein unerwartetes Problem aufgetreten ist – der Server kann die Anfrage nicht erfolgreich abschließen, ohne dass ein spezifischerer Fehlercode zutrifft.
Im Gegensatz zu Fehlern wie 404 (Seite nicht gefunden) oder 403 (Zugriff verweigert) gibt der 500-Error keine direkten Hinweise auf die Ursache. Deshalb ist eine systematische Fehlersuche erforderlich.
Wichtig: Der 500-Error ist ein serverseitiger Fehler. Das Problem liegt nicht beim Browser oder Gerät des Besuchers, sondern in der Serverkonfiguration, im Anwendungscode oder in einer Ressourcenbeschränkung.
Häufige Ursachen für den 500 Error
Die Ursachen für einen 500 Internal Server Error sind vielfältig. Hier sind die häufigsten Auslöser:
| Ursache | Beschreibung | Häufigkeit |
|---|---|---|
| Fehlerhafte .htaccess | Syntaxfehler oder ungültige Direktiven in der .htaccess-Datei | Sehr häufig |
| PHP-Fehler | Syntaxfehler, fehlende Funktionen oder fatale Fehler im PHP-Code | Sehr häufig |
| Falsche Dateiberechtigungen | Dateien oder Verzeichnisse haben falsche Lese-/Schreibrechte | Häufig |
| PHP Memory Limit | Skript benötigt mehr Arbeitsspeicher als erlaubt | Häufig |
| Defektes Plugin/Theme | Inkompatibles oder fehlerhaftes WordPress-Plugin oder Theme | Häufig |
| Datenbankfehler | Verbindungsprobleme oder beschädigte Datenbanktabellen | Gelegentlich |
| PHP-Timeout | Skript läuft länger als die erlaubte Ausführungszeit | Gelegentlich |
| ModSecurity-Blockierung | Die Web Application Firewall blockiert eine Anfrage | Gelegentlich |
| Fehlende PHP-Module | Anwendung benötigt ein PHP-Modul, das nicht aktiviert ist | Selten |
Schritt 1: Error-Log analysieren
Der erste und wichtigste Schritt bei der Fehlersuche ist die Analyse des Error-Logs. Hier protokolliert der Server detaillierte Informationen zu jedem Fehler.
So finden Sie das Error-Log
Das Error-Log Ihrer Domain befindet sich unter:
/home/users/IHR-BENUTZERNAME/logs/ihre-domain.de/error.log
Zugriffsmöglichkeiten:
- KeyHelp Datei-Manager: Allgemein → Datei-Manager → logs → ihre-domain.de
- FTP/SFTP: Navigieren Sie zum Verzeichnis
logsin Ihrem Home-Verzeichnis - SSH:
tail -100 ~/logs/ihre-domain.de/error.log
Typische Fehlermeldungen im Error-Log
| Fehlermeldung | Bedeutung | Lösung |
|---|---|---|
PHP Fatal error: Allowed memory size exhausted |
PHP-Speicherlimit überschritten | Memory Limit erhöhen |
PHP Parse error: syntax error |
Syntaxfehler im PHP-Code | Code korrigieren (Zeile wird angegeben) |
PHP Fatal error: Call to undefined function |
Fehlende Funktion oder PHP-Modul | Modul aktivieren oder Code prüfen |
Invalid command 'xyz' in .htaccess |
Ungültige Direktive in .htaccess | .htaccess prüfen und korrigieren |
Permission denied |
Keine Berechtigung für Datei/Verzeichnis | Dateiberechtigungen korrigieren |
ModSecurity: Access denied |
Anfrage von Firewall blockiert | Support kontaktieren für Ausnahmeregel |
Maximum execution time exceeded |
PHP-Skript-Timeout überschritten | Code optimieren oder Timeout erhöhen |
→ Ausführliche Anleitung: Server-Logfiles auslesen und verstehen
Schritt 2: Häufige Ursachen beheben
Fehlerhafte .htaccess-Datei
Die .htaccess-Datei ist eine der häufigsten Ursachen für 500-Errors. Ein einzelner Tippfehler kann die gesamte Webseite lahmlegen.
So prüfen Sie die .htaccess:
- Benennen Sie die .htaccess temporär um:
.htaccess→.htaccess_backup - Laden Sie die Webseite neu
- Funktioniert die Seite? Dann liegt der Fehler in der .htaccess
- Prüfen Sie die Datei Zeile für Zeile auf Fehler
Häufige .htaccess-Fehler:
- Tippfehler in Direktiven (z.B.
RewriteRulstattRewriteRule) - Fehlende
RewriteEngine Onvor RewriteRules - Ungültige Syntax bei regulären Ausdrücken
- Veraltete Direktiven, die in neueren Apache-Versionen nicht mehr unterstützt werden
- Nicht geschlossene
<IfModule>-Blöcke
WordPress Standard-.htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
PHP-Fehler beheben
PHP-Fehler sind die zweithäufigste Ursache. So gehen Sie vor:
- Prüfen Sie das Error-Log auf PHP-Fehlermeldungen
- Notieren Sie die betroffene Datei und Zeilennummer
- Korrigieren Sie den Fehler oder setzen Sie das letzte funktionierende Backup ein
Bei WordPress: Häufig sind Plugins oder Themes schuld. Benennen Sie den Plugin-Ordner um, um alle Plugins zu deaktivieren:
/www/wp-content/plugins → /www/wp-content/plugins_deaktiviert
Dateiberechtigungen korrigieren
Falsche Dateiberechtigungen können den Webserver daran hindern, Dateien zu lesen oder auszuführen.
Empfohlene Berechtigungen:
| Element | Berechtigung | Oktal |
|---|---|---|
| Verzeichnisse | rwxr-xr-x | 755 |
| Dateien | rw-r–r– | 644 |
| wp-config.php | rw-r—– | 640 (empfohlen) |
Per SSH alle Berechtigungen korrigieren:
# Alle Verzeichnisse auf 755 setzen
find /www -type d -exec chmod 755 {} \;
# Alle Dateien auf 644 setzen
find /www -type f -exec chmod 644 {} \;
PHP Memory Limit erhöhen
Wenn das Error-Log Allowed memory size exhausted zeigt, benötigt Ihr Skript mehr Arbeitsspeicher.
Lösung 1: Über php.ini (empfohlen)
Erstellen oder bearbeiten Sie eine php.ini im Stammverzeichnis Ihrer Domain:
memory_limit = 256M
Lösung 2: Über .htaccess
php_value memory_limit 256M
Lösung 3: Im PHP-Script
<?php
ini_set('memory_limit', '256M');
?>
Hinweis: Ihr Hosting-Tarif definiert das maximale Speicherlimit. Bei SpeedIT können Sie das Limit im KeyHelp unter Domains → PHP-Einstellungen anpassen.
Schritt 3: WordPress-spezifische Lösungen
Bei WordPress-Webseiten gibt es einige typische Szenarien:
Defektes Plugin identifizieren
- Verbinden Sie sich per FTP/SFTP mit dem Server
- Navigieren Sie zu
/www/wp-content/ - Benennen Sie den
plugins-Ordner um inplugins_old - Laden Sie die Webseite neu – funktioniert sie jetzt?
- Erstellen Sie einen neuen, leeren
plugins-Ordner - Verschieben Sie die Plugins einzeln zurück und testen Sie nach jedem
- Das Plugin, nach dem der Fehler wieder auftritt, ist der Übeltäter
Defektes Theme identifizieren
- Benennen Sie Ihr aktives Theme um (unter
/www/wp-content/themes/) - WordPress wechselt automatisch auf ein Standard-Theme (z.B. Twenty Twenty-Four)
- Funktioniert die Seite? Dann ist das Theme fehlerhaft
WordPress Debug-Modus aktivieren
Um detailliertere Fehlermeldungen zu erhalten, aktivieren Sie den Debug-Modus in der wp-config.php:
// Debug-Modus aktivieren
define('WP_DEBUG', true);
// Fehler in Datei statt auf Bildschirm ausgeben
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
// Skript-Debug für CSS/JS
define('SCRIPT_DEBUG', true);
Die Debug-Informationen werden in /www/wp-content/debug.log gespeichert.
Wichtig: Deaktivieren Sie den Debug-Modus auf Live-Seiten nach der Fehlersuche wieder!
Schritt 4: Erweiterte Diagnose
ModSecurity-Blockierung prüfen
Manchmal blockiert die Web Application Firewall (ModSecurity) legitime Anfragen und verursacht einen 500-Error (oder 403).
Anzeichen für ModSecurity-Blockierung:
- Der Fehler tritt nur bei bestimmten Aktionen auf (z.B. Formular absenden, Artikel speichern)
- Im Error-Log finden Sie Einträge mit
[security2:error]oderModSecurity
So finden Sie ModSecurity-Blockierungen:
grep "ModSecurity" ~/logs/ihre-domain.de/error.log
→ Ausführliche Anleitung: ModSecurity – Ihr Schutzschild gegen Cyberangriffe
PHP-Version prüfen
Manche Anwendungen sind nicht mit allen PHP-Versionen kompatibel. Ein Update oder Downgrade der PHP-Version kann helfen.
PHP-Version ändern:
- Melden Sie sich in der Webserver Verwaltung an
- Navigieren Sie zu Domains
- Wählen Sie die Domain und ändern Sie die PHP-Version
Kompatibilitäts-Übersicht:
| Anwendung | Empfohlene PHP-Version |
|---|---|
| WordPress 6.x | PHP 8.1 oder 8.2 |
| Joomla 5.x | PHP 8.1 oder 8.2 |
| TYPO3 12/13 | PHP 8.1, 8.2 oder 8.3 |
| Laravel 10/11 | PHP 8.1 oder höher |
| Ältere Anwendungen | PHP 7.4 (falls noch verfügbar) |
Datenbankverbindung prüfen
Wenn die Datenbankverbindung fehlschlägt, kann dies zu einem 500-Error führen.
Prüfen Sie:
- Sind die Zugangsdaten in der Konfigurationsdatei (z.B.
wp-config.php) korrekt? - Existiert die Datenbank noch? (Prüfen im KeyHelp unter Ressourcen → Datenbanken)
- Ist der Datenbankbenutzer berechtigt?
Checkliste zur schnellen Fehlersuche
Arbeiten Sie diese Checkliste systematisch durch:
| Schritt | Aktion | Erledigt? |
|---|---|---|
| 1 | Error-Log prüfen und Fehlermeldung notieren | ☐ |
| 2 | .htaccess umbenennen und Seite testen | ☐ |
| 3 | Letzte Änderungen rückgängig machen (Plugin, Theme, Code) | ☐ |
| 4 | Dateiberechtigungen prüfen (755 für Ordner, 644 für Dateien) | ☐ |
| 5 | PHP Memory Limit prüfen und ggf. erhöhen | ☐ |
| 6 | Bei WordPress: Plugins deaktivieren und einzeln testen | ☐ |
| 7 | PHP-Version prüfen und ggf. ändern | ☐ |
| 8 | Backup einspielen, falls verfügbar | ☐ |
Wann sollten Sie den Support kontaktieren?
In folgenden Fällen empfehlen wir, unseren Support zu kontaktieren:
- Das Error-Log zeigt keine aussagekräftigen Fehlermeldungen
- Der Fehler tritt serverseitig auf (nicht im Anwendungscode)
- Sie vermuten ein Problem mit der Serverkonfiguration
- ModSecurity blockiert legitime Anfragen und Sie benötigen eine Ausnahmeregel
- Der Fehler tritt plötzlich auf, ohne dass Sie etwas geändert haben
Bitte geben Sie bei der Support-Anfrage an:
- Betroffene Domain
- Wann der Fehler erstmals auftrat
- Welche Aktionen Sie bereits durchgeführt haben
- Die relevanten Zeilen aus dem Error-Log
Verwandte Artikel
- Server-Logfiles auslesen und verstehen
- ModSecurity – Ihr Schutzschild gegen Cyberangriffe
- Server nicht erreichbar / IP-Sperre
- 404 Not Found – Seite nicht gefunden
Sie benötigen Hilfe?
Falls Sie den Fehler nicht selbst beheben können, kontaktieren Sie unseren Support. Wir helfen Ihnen gerne – auch per Fernwartung.