Manual:How to debug/de

Diese Seite gibt eine grundlegende Einführung um MediaWiki-Software zu debuggen.

Eines der ersten Dinge, die Sie bemerken werden ist, dass "Echo" in der Regel nicht funktioniert; dies ist Teil des allgemeinen Design.

PHP-Fehler
Um PHP-Fehler zu sehen, fügen Sie dies ganz oben in der LocalSettings.php ein: Oder setzen Sie es in :

Dies führt dazu, das PHP-Fehler auf der Seite angezeigt werden. Dies könnte es einfacher für Angreifer machen, einen Weg in Ihren Server zu finden, so deaktivieren Sie es erneut, wenn Sie das Problem gefunden haben.

Beachten Sie, dass fatale PHP-Fehler passieren können, bevor die Linien darüber immer ausgeführt werden, oder sie können verhindern, dass sie gezeigt werden. Fatale PHP-Fehler werden in der Regel von Apache's Fehlerprotokoll protokolliert – überprüfen Sie die  Einstellung in   (oder verwenden Sie  )

Es gibt verschiedene Konfigurationsoptionen, um das Debuggen zu unterstützen. Die folgenden sind standardmäßig alle. Aktivieren Sie sie, indem Sie sie auf  aus, was die Fehler versteckt, auch wenn Sie das   Niveau anheben. Drehen innerhalb des Programms ist zu spät! Stattdessen müssen Sie ein Wrapper-Datei um Ihre Datei erstellen. Im Fall von MediaWiki, können Sie einfach diese auf der Oberseite der mediawiki/index.php hinzufügen:

In anderen Umgebungen:

SQL-Fehler
Um SQL-Fehler in Fehlermeldungen anstatt "(SQL-Abfrage versteckt)" anzuzeigen, fügen Sie folgendes zur  hinzu:

Sie können auch die Rückverfolgung auf SQL-Fehler aktivieren, indem Sie $wgShowDBErrorBacktrace einstellen:

Protokollierung
Für das viel größere Detail, müssen Sie Fehler profilieren und protokollieren.

Einrichten einer Debug-Protokolldatei
Um Fehler und Debugging-Informationen in einer Protokolldatei zu speichern, fügen Sie  der LocalSettings.php Datei hinzu. Ändern Sie den Wert in eine Textdatei, wo Sie die Debug-Trace-Ausgabe speichern möchten. The MediaWiki software must have permissions from your operating system to create and write to this file, for example in a default Ubuntu install it runs as user & group www-data:www-data. Here's a sample setting:

Diese Datei enthält alle eingebauten MediaWiki Debug-Informationen. Some subsystems write to custom logs, see to capture their output.

Datenbank-Transaktionen Lebenszyklus debuggen kann für einige Datenbanken mit $wgDebugDBTransactions aktiviert werden.

Erstellen einer benutzerdefinierten Protokolldatei
Um eine benutzerdefinierte Protokolldatei zu erstellen, die nur Ihre speziellen Debug-Anweisungen enthält, nutzen Sie die -Funktion. Diese Funktion nimmt 2 Argumente, die Zeichenfolge zum protokollieren und den Pfad zur Protokolldatei:

Erstellen von benutzerdefinierten Protokoll-Gruppen
Wenn Sie mehrere unterschiedliche Komponenten debuggen, kann es sinnvoll sein Protokoll-Gruppen einzurichten. Um benutzerdefinierte Protokoll-Gruppen zu erstellen, fügen Sie dies zur LocalSettings.php hinzu:

Um eine dieser Gruppen zu debuggen, verwenden Sie eine Anweisung die wie folgt aus:

Diese Protokolle enthalten nur Ihre Debuganweisungen (nicht integrierte MediaWiki Debug-Informationen).

Sende Debug-Daten an ein HTML-Kommentar in der Ausgabe
Dies kann manchmal nützlich sein, bei der Unterstützung eines nicht-technischen Endanwenders. Es ist sicherer als das Freilegen der Debug-Protokolldatei in das Internet, da die Ausgabe nur private Daten für den aktuellen Benutzer enthält. Aber es ist für den Entwicklungsgebrauch nicht ideal, da Daten auf fatalen Fehlern und Weiterleitungen verloren gehen. Verwenden auf Produktionsstandorte wird nicht empfohlen. Debug-Kommentare enthüllen Informationen in Seitenansichten, die möglicherweise Sicherheitsrisiken ausgesetzt sein könnten.


 * Manual:$wgDebugComments

Arbeitsleben mit MediaWiki-Objekten
eval.php ist ein interaktives Skript, um mit MediaWiki-Objekten und Funktionen in einer vollständig initialisierten Umgebung zu bewerten und zu interagieren.

$ php maintenance/eval.php > print wfMessage("Recentchanges")->plain; Letzte Änderungen

The MediaWiki-Vagrant portable virtual machine integrates the the interactive PHP shell.

Profilierung
Um weitere Informationen zu erhalten, müssen Sie Profiler aktivieren. Profiler verfolgt Codeausführung bei Seitenaktion und meldet den Prozentsatz der gesamten Ausführung von Code, die in einer bestimmten Funktion verwendet wurde. Das erzeugte Profil enthält nur Funktionen, die speziell markiert wurden, um profiliert zu werden. Beachten Sie, dass Sie  in der LocalSettings.php gesetzt haben; das ist die Datei, an der Ihre Profiling-Daten angehängt werden.

Wenn Sie Profilierung nicht verwenden, aber eine  Datei im MediaWiki Stammordner haben, können Sie Fehler erhalten, die sich auf   beziehen. Löschen oder Umbenennen, der  Datei, wird diesen Fehler beheben. Die  Datei, auch im MediaWiki Stammordner, kann als Vorlage dienen, sollten Sie Profiling in der Zukunft ermöglichen.

Um Profilierung zu aktivieren, müssen Sie die  ändern (siehe   im MediaWiki Stammordner für ein Beispiel). Standardmäßig enthält die Datei einen  der nur Profiling-Informationen ablädt. Um stattdessen diese Information an eine Datei zu leiten, bearbeiten Sie StartProfiler.php, so dass es wie folgt aussieht:

Dann können Sie die Profiling-Optionen in der  anpassen (nicht  ; editieren Sie unbedingt unter der Voraussetzung von  ).

Allgemeine Konfiguration (beide <1.7 und >1.8):

In MediaWiki 1.7 und früher, anstatt die  zu bearbeiten, müssen Sie   auf   setzen. Das wird grundlegende Seitentiming-Informationen in der Datei erzeugen, definiert durch.

Zusätzlich zu der Liste der Einstellungen oben, sind diese zusätzlichen Einstellungen verfügbar:

Fortgeschrittene Profilierung
Sobald Sie Profilierung ermöglicht haben, können Sie Codeausführung durch jede Funktion verfolgen, die Sie als ein Engpass untersuchen wollen, indem Sie die Funktion mit dem folgenden Code umwickeln.

Nachdem Sie diese Informationen hinzugefügt haben, navigieren Sie zu einer Seite im Wiki. Dies erzeugt Profilierungsinformationen in der Protokolldatei, die Sie oben definiert hatten. Ändern Sie  in   zu true oder false für verschiedene Anzeigeformate.

Protokollierung in Datenbank
Um Profilierungsinformationen in einer Datenbank zu protokollieren, setzen Sie  in LocalSettings.php. Dann führen Sie entweder update.php (seit 1.21) aus und die Profilierungstabelle wird hinzugefügt werden oder wenden Sie die Datei maintenance/archives/patch-profiling.sql (der empfohlene Weg dies zu tun ist ) manuell an.

Profil-Information anzeigen
Wenn Sie Ihr Profilierungsinformationen an der Datenbank protokollieren, können Sie die Informationen in einer Webseite anzeigen, indem Sie zu  navigieren. Sie müssen auch ; in  setzen. Dann, nachdem Sammeln von Daten, indem Sie Wiki-Seiten durchsuchen, besuchen Sie  um zu sehen, wie viel Zeit Ihr profilierter Code verwendet, und wie oft es aufgerufen wird.

Um Profilierungsinformationen als HTML-Kommentare im Anhang am unteren Rand einer Seite anzuzeigen, fügen Sie einfach  zu der URL. Diese Funktion ist nicht im Standard-Produkt, Sie können sie aktivieren, indem Sie dies zu  hinzufügen:

Siehe auch

 * Resource Loader: Entwickeln mit ResourceLoader (engl.)
 * Alle Konfigurationsvariablen in Bezug auf Debuggen/Protokollierung: Manual:Configuration_settings/de
 * Nützliche Debugging-Funktion:  (läßt mit einer optionalen Nachricht nach und druckt die Aufrufliste)
 * Handbuch:Fehler und Symptome (engl.)
 * Kategorie:Debug-Variablen