HTTP 5xx-Fehler bedeuten: Der Server hat ein Problem. Aber was genau? In diesem Artikel erklären wir die häufigsten Server-Fehler und ihre Lösungen.

500 Internal Server Error

Der allgemeinste Server-Fehler. Irgendetwas ist schiefgelaufen.

Häufige Ursachen

1. PHP-Fehler im Code 2. Falsche Dateiberechtigungen 3. Fehlerhafte .htaccess 4. Speicherlimit erreicht 5. Fehlende PHP-Module

Diagnose

# Apache Error-Log
tail -100 /var/log/apache2/error.log

# Nginx Error-Log
tail -100 /var/log/nginx/error.log

# PHP Error-Log
tail -100 /var/log/php8.1-fpm.log

Lösungen

PHP-Fehler anzeigen (temporär für Debugging):

ini_set('display_errors', 1);
error_reporting(E_ALL);

Berechtigungen prüfen:

ls -la /var/www/html/
# Dateien: 644, Verzeichnisse: 755
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;
chown -R www-data:www-data /var/www/html/

Fehlerhafte .htaccess:

# Temporär umbenennen
mv /var/www/html/.htaccess /var/www/html/.htaccess.backup
# Wenn Website funktioniert: .htaccess Zeile für Zeile prüfen

Speicherlimit erhöhen:

; /etc/php/8.1/fpm/php.ini
memory_limit = 256M

502 Bad Gateway

Der Webserver konnte den Backend-Server nicht erreichen.

Häufige Ursachen

1. PHP-FPM läuft nicht 2. Falscher Socket-Pfad 3. Backend-Anwendung abgestürzt 4. Timeout beim Backend

Diagnose

# PHP-FPM Status
systemctl status php8.1-fpm

# Socket vorhanden?
ls -la /run/php/php8.1-fpm.sock

# Prozesse laufen?
ps aux | grep php-fpm

Lösungen

PHP-FPM neu starten:

systemctl restart php8.1-fpm

Socket-Pfad in Nginx prüfen:

# Muss übereinstimmen mit PHP-FPM-Konfiguration
fastcgi_pass unix:/run/php/php8.1-fpm.sock;

PHP-FPM Pool-Konfiguration:

; /etc/php/8.1/fpm/pool.d/www.conf
listen = /run/php/php8.1-fpm.sock
listen.owner = www-data
listen.group = www-data

Bei Node.js/Python Backend:

# Läuft die Anwendung?
systemctl status myapp
# Richtige Port-Nummer in Nginx?
proxy_pass http://127.0.0.1:3000;

503 Service Unavailable

Der Server ist überlastet oder in Wartung.

Häufige Ursachen

1. Server überlastet (CPU/RAM) 2. Zu viele Verbindungen 3. PHP-FPM Worker erschöpft 4. Wartungsmodus aktiv 5. Rate Limiting

Diagnose

# System-Auslastung
htop
free -h
df -h

# PHP-FPM Status
curl http://localhost/fpm-status  # Falls aktiviert

# Verbindungen
ss -s
netstat -an | grep :80 | wc -l

Lösungen

PHP-FPM Worker erhöhen:

; /etc/php/8.1/fpm/pool.d/www.conf
pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

Nginx Worker erhöhen:

worker_processes auto;
worker_connections 1024;

Überlastete Prozesse finden:

# Top CPU-Verbraucher
ps aux --sort=-%cpu | head -20

# Top RAM-Verbraucher
ps aux --sort=-%mem | head -20

Wartungsmodus (WordPress):

# Löschen wenn versehentlich aktiv
rm /var/www/html/.maintenance

504 Gateway Timeout

Das Backend antwortet nicht rechtzeitig.

Häufige Ursachen

1. Langsame PHP-Skripte 2. Langsame Datenbankabfragen 3. Externe API antwortet nicht 4. Zu niedriges Timeout

Diagnose

# PHP Slow-Log (falls aktiviert)
tail -100 /var/log/php8.1-fpm-slow.log

# MySQL Slow-Log
tail -100 /var/log/mysql/mysql-slow.log

# Wie lange dauert die Anfrage?
time curl -o /dev/null -s -w "%{time_total}\n" https://example.com/slow-page

Lösungen

Nginx Timeout erhöhen:

# In server oder location Block
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
fastcgi_read_timeout 300;

PHP max_execution_time erhöhen:

; /etc/php/8.1/fpm/php.ini
max_execution_time = 300

Langsame Queries finden (MySQL):

; /etc/mysql/my.cnf
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 2

Schnelle Checkliste

| Fehler | Erste Aktion | |--------|--------------| | 500 | Error-Logs prüfen | | 502 | systemctl status php8.1-fpm | | 503 | htop (Auslastung prüfen) | | 504 | Timeouts erhöhen, Slow-Logs prüfen |

Generelle Tipps

1. Immer Logs prüfen

tail -f /var/log/nginx/error.log
tail -f /var/log/php8.1-fpm.log
journalctl -f

2. Dienste neustarten

systemctl restart nginx
systemctl restart php8.1-fpm
systemctl restart mysql

3. Konfiguration testen

nginx -t
php-fpm8.1 -t

4. Ressourcen überwachen

htop
iostat -x 1

Fazit

5xx-Fehler kommen von Server-Problemen. 500 = Code-Fehler prüfen, 502 = Backend läuft nicht, 503 = Überlastung, 504 = Timeouts. Die Logs sind Ihr bester Freund beim Debugging. Aktivieren Sie PHP Slow-Logs und MySQL Slow-Query-Logs, um chronische Probleme zu finden.