Contao: strukturierte Fehlersuche

Kein Programm ist fehlerfrei. Und schon gar kein PHP-Script.

Das ist die schlechte Nachricht. Die Gute: mit strukturierten Vorgehen lassen sich die allermeisten Probleme lösen.

Dazu gehört vor allem, Fehlermeldungen auch zu lesen. Denn im Gegensatz zur landläufigen Meinung sind diese Meldungen oft nützlich. Beipielsweise sei oben gezeigte Contao-Meldung genannt - sie liefert die Anleitung in drei Schritten nämlich gleich mit.

Schritt 1 der drei Vorschläge überspringen wir jetzt mal - reine User sollten wirklich dem Administrator oder der Adminstratorin Bescheid geben. Aber schon Schritt 2 weist auf wichtige Lösungsansätze hin: "Lies das Serverlog!" Dort steht nämlich eventuell vermerkt, bei welchem Funktionsaufruf es zu einem Fehler kam. Mit ein wenig Phantasie und technischem Gespür lassen sich wertvolle Hinweise erhaschen - ggf. ein Modulname im Klartext.

Vielleicht hat ja die letzte installierte Extension damit zu tun? Man kann's ja mal ausprobieren, sie in der Erweiterungsverwaltung zu deaktivieren. Läuft danach alles wie gewünscht, dann haben wir den Übeltäter schon gefunden.

Und bevor jetzt jemand fragt "Welches Logfile?" - es gibt mehrere Orte, an denen sich eine Suche lohnt. Das Contao-eigene Fehlerprotokoll findet sich im Contao-Ordner /system/logs und hört auf den Namen 'error.log'.

Jeder Webserver führt ebenfalls noch Protokoll darüber, was an einen miesen Tag alles schiefgehen kann - diese Logs lassen sich (abhängig vom Provider) bei ebendiesem einsehen oder anfordern. Dann muss man dort anfragen, nachdem man sich in der Supportdatenbank des Providers über die Möglichkeiten informiert hat.

Schritt 3 schaltet die direkte Fehlerausgabe in Contao ein - und direkte Eingabe von

$GLOBALS['TL_CONFIG'] ['display_errors'] = true;

in die Datei /system/config/localconfig.php ist dazu eine Möglichkeit. Eine andere ist es, unter 'System' -> 'Einstellungen' -> 'Sicherheitseinstellungen' den Punkt 'Fehlermeldungen anzeigen' zu aktivieren.

Dann sollte Contao in den allermeisten Fällen ebenfalls Meldungen auf dem Bildschirm ausgeben, die normalerweise im error.log landen.

Contao ab Version 2.11 bietet übrigens eine sehr schöne Einstellungsmöglichkeit dazu an. War es früher nur möglich, die Fehlerausgabe global zu verbieten oder zu erlauben (womit man sich dann etwas einhandelte, das auch unter 'Full disclosure' bekannt ist und dritten im Fall der Fälle die Kenntnis aller Serverpfade ermöglichte) kann Conto jetzt die Fehlerausgabe auf dem Screen unterdrücken, die Daten aber trotzdem ins Logfile schreiben.

Zurück

Einen Kommentar schreiben

Kommentar von Karin Rathmaier |

Es ist ein Fehler aufgetreten.

Kommentar von Harald Pelzer |

Es ist ein Fehler aufgetreten
Was ist das Problem?

Bei der Ausführung des Skriptes ist ein Fehler aufgetreten. Irgendetwas funktioniert nicht richtig.
Wie kann ich das Problem lösen?

Öffnen Sie die Datei system/logs/error.log und suchen Sie die zugehörige Fehlermeldung (normalerweise die letzte). Sie können auch folgende Zeile in die lokale Konfigurationsdatei einfügen und diese Seite neu laden:

$GLOBALS['TL_CONFIG']['displayErrors'] = true;

Beachten Sie jedoch, dass in diesem Fall jeder die Fehlermeldungen auf Ihrer Webseite sehen kann!
Weitere Informationen

Die Skriptausführung wurde gestoppt, weil irgendetwas nicht korrekt funktioniert. Die eigentliche Fehlermeldung wird aus Sicherheitsgründen hinter dieser Meldung verborgen und findet sich in der Datei system/logs/error.log/ (siehe oben). Wenn Sie die Fehlermeldung nicht verstehen oder nicht wissen, wie das Problem zu beheben ist, durchsuchen Sie die Contao-FAQs oder besuchen Sie die Contao-Supportseite.

Antwort von Carolina Koehn

Klar sind dann die Fehlermeldungen für alle zu sehen, und ebenso klar ist, dass die Fehlerausgabe nach Beseitigung wieder abgeschaltet werden muss.

Allerdings sollten die Fehler sich ja auch im Logfile (unter /system/logs) befinden. Dort nachzuschauen ist meistens die bessere Option.

Hast Du Fragen oder Anregungen? Dann nutze die Kommentarfunktion.

Die Verarbeitung Ihrer Daten erfolgt im Rahmen unserer Datenschutzerklärung.