Inhaltsverzeichnis
Fehlerbehebung
Bei der Entwicklung und beim Betrieb lokaler Anwendungen treten immer wieder Fehler auf.
Hier sammle ich allgemeine Vorgehensweisen zur Fehlersuche sowie konkrete Probleme und deren Lösungen.
Ziel ist nicht nur, einen Fehler zu beseitigen, sondern die Ursache nachvollziehbar zu dokumentieren, damit eine bereits gefundene Lösung später schnell wieder zur Verfügung steht.
Grundprinzip
Bei der Fehlersuche gehe ich möglichst systematisch vor:
- Fehlerbild genau feststellen
- letzte Änderungen berücksichtigen
- Fehlermeldungen vollständig lesen
- Protokolldateien prüfen
- mögliche Ursachen eingrenzen
- Änderungen einzeln durchführen
- nach jeder Änderung erneut testen
- funktionierende Lösung dokumentieren
Nicht mehrere Dinge gleichzeitig ändern.
Wird immer nur eine Änderung vorgenommen und anschließend getestet, lässt sich wesentlich leichter feststellen, was die tatsächliche Ursache des Problems war.
Wichtige Informationsquellen
Bei der Fehlersuche sind insbesondere folgende Informationen hilfreich:
- genaue Fehlermeldung
- Zeitpunkt des Fehlers
- zuletzt vorgenommene Änderungen
- Logdateien
- verwendete Programmversionen
- Konfigurationsdateien
- laufende Prozesse
- verwendete Ports
- Datenbankstatus
Fehlermeldungen
Fehlermeldungen sollten möglichst vollständig betrachtet werden.
Ein einzelner Satz beschreibt häufig nur die sichtbare Folge eines Problems. Weitere Informationen im Fehlerprotokoll können Hinweise auf die eigentliche Ursache liefern.
Deshalb sollte eine Fehlermeldung zunächst dokumentiert werden, bevor Änderungen am System vorgenommen werden.
Logdateien
Viele Anwendungen und Dienste führen eigene Protokolldateien.
Diese können beispielsweise Informationen enthalten über:
- Startprobleme
- Konfigurationsfehler
- PHP-Fehler
- Datenbankfehler
- fehlende Dateien
- Zugriffsprobleme
Bei Apache befinden sich wichtige Protokolle beispielsweise unter:
E:\xampp\apache\logs
Besonders wichtig ist:
E:\xampp\apache\logs\error.log
Weitere Informationen:
Ports und Prozesse
Kann ein Serverdienst nicht gestartet werden, sollte geprüft werden, ob der benötigte Port bereits von einem anderen Prozess verwendet wird.
Unter Windows kann beispielsweise die Belegung von Port 80 geprüft werden:
netstat -ano | findstr :80
Für HTTPS:
netstat -ano | findstr :443
Die dabei angezeigte Prozess-ID kann anschließend verwendet werden, um den verursachenden Prozess zu identifizieren.
Bereits dokumentierte Fehlerfälle
Apache startet nach Local nicht mehr
Nach der Nutzung von Local ließ sich Apache in XAMPP nicht mehr starten.
Ursache war ein noch laufender nginx-Prozess von Local.
Die konkrete Erfahrung und Lösung ist hier dokumentiert:
MariaDB / InnoDB-Absturz
Für einen konkreten MariaDB-Ausfall mit beschädigtem InnoDB-Systembereich wurde ein vollständiges Recovery-Verfahren dokumentiert.
Vor größeren Reparaturen
Bevor umfangreiche Reparaturversuche durchgeführt werden, sollte der aktuelle Zustand möglichst gesichert werden.
Je nach Problem können dazu gehören:
- Projektdateien
- Konfigurationsdateien
- Datenbanken
- komplette Datenverzeichnisse
- vorhandene Logdateien
Bei einem schwerwiegenden Fehler zuerst überlegen, welche Daten noch gesichert werden können.
Eine Sicherung des fehlerhaften Zustands kann später ebenfalls hilfreich sein, wenn weitere Untersuchungen notwendig werden.
Dokumentation einer Lösung
Ein dokumentierter Fehlerfall sollte möglichst enthalten:
- Fehlerbild
- Umgebung
- Fehlermeldung
- Ursache
- durchgeführte Prüfungen
- Lösung
- Ergebnis
- wichtige Hinweise für einen erneuten Fehlerfall
So entsteht mit der Zeit eine persönliche Wissenssammlung aus tatsächlich aufgetretenen Problemen.
Merksatz
Erst verstehen, dann ändern.
Fehlerbild sichern, Ursache eingrenzen, Änderungen einzeln testen und die funktionierende Lösung anschließend dokumentieren.
