500 – Internal Server Error

Zurück zur Wissensdatenbank Zurück zur Startseite

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 logs in 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:

  1. Benennen Sie die .htaccess temporär um: .htaccess.htaccess_backup
  2. Laden Sie die Webseite neu
  3. Funktioniert die Seite? Dann liegt der Fehler in der .htaccess
  4. Prüfen Sie die Datei Zeile für Zeile auf Fehler

Häufige .htaccess-Fehler:

  • Tippfehler in Direktiven (z.B. RewriteRul statt RewriteRule)
  • Fehlende RewriteEngine On vor 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:

  1. Prüfen Sie das Error-Log auf PHP-Fehlermeldungen
  2. Notieren Sie die betroffene Datei und Zeilennummer
  3. 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 DomainsPHP-Einstellungen anpassen.


Schritt 3: WordPress-spezifische Lösungen

Bei WordPress-Webseiten gibt es einige typische Szenarien:

Defektes Plugin identifizieren

  1. Verbinden Sie sich per FTP/SFTP mit dem Server
  2. Navigieren Sie zu /www/wp-content/
  3. Benennen Sie den plugins-Ordner um in plugins_old
  4. Laden Sie die Webseite neu – funktioniert sie jetzt?
  5. Erstellen Sie einen neuen, leeren plugins-Ordner
  6. Verschieben Sie die Plugins einzeln zurück und testen Sie nach jedem
  7. Das Plugin, nach dem der Fehler wieder auftritt, ist der Übeltäter

Defektes Theme identifizieren

  1. Benennen Sie Ihr aktives Theme um (unter /www/wp-content/themes/)
  2. WordPress wechselt automatisch auf ein Standard-Theme (z.B. Twenty Twenty-Four)
  3. 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] oder ModSecurity

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:

  1. Melden Sie sich in der Webserver Verwaltung an
  2. Navigieren Sie zu Domains
  3. 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 RessourcenDatenbanken)
  • 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


Sie benötigen Hilfe?

Falls Sie den Fehler nicht selbst beheben können, kontaktieren Sie unseren Support. Wir helfen Ihnen gerne – auch per Fernwartung.

Support kontaktieren

Zurück zur Startseite

Professionelle Betreuung
für Agenturen

Agenturpartner werden
© 2009-2026 SpeedIT Solutions - Cloud-Hosting & E-Commerce vom Profi! - Made with ❤ and ☕ in Isernhagen - Germany

* Preis inkl. deutscher MwSt. der Gesamtpreis ist abhängig vom Mehrwertsteuersatz des Lieferlandes.