Error-Log


Inhalt


Error-Log des Webservers einsehen

Standardmäßig ist das Server-Fehlerprotokoll deaktiviert. Der Klick auf die Schaltfläche aktivieren setzt die Protokollierung in Gang.

errorlog_02

ACHTUNG! Die Protokollierung ist nach Aktivierung nur für die folgenden 24 Stunden aktiviert. Nach Ablauf deaktiviert sich diese automatisch.

Unter anzeigen erhalten Sie Direktzugriff auf aktuelle Fehlerberichte oder gespeicherte Protokolle.

errorlog Der Aufruf kann, je nach Dateigröße des Protokolls, eine Weile dauern. Aus diesem Grund empfehlen wir in jedem Fall, die Logs via FTP-Zugriff herunter zu laden. Den Speicherort behandeln wir im Thema Die FTP-Ordnerstruktur.

Fehler, die durch PHP selbst aufgezeichnet werden, finden sich nicht im Error-Log des Webservers! Bitte wählen Sie in der oben gezeigten Auswahl priv/php_error.log aus. Selbstverständlich können Sie diese Meldungen auch direkt per FTP/SSH an folgender Stelle eingesehen werden:

/logs/priv/php_errors.log

Error-Log im Browser abrufen

Um nicht für jeden einzelnen Fehler die Error-Log-Datei erneut über FTP komplett laden zu müssen, stellen wir hier ein PHP-Skript zur Verfügung, welches das Error-Log als Webseite darstellt.

  • Speichern Sie den Inhalt des unten stehenden Skriptes in einer Datei, sinnvollerweise “errorlog.php” oder ähnlich benannt.
  • Passen Sie das Passwort in Zeile 2 an (statt “mysecretpassword” ein eigenes setzen).
  • Laden Sie die Datei als “errorlog.php” auf Ihren Webspace.
  • Rufen Sie die Datei auf, allerdings mit dem Passwort als Parameter. Beispiel:
http://example.com/errorlog.php?p=mysecretpassword
  • Laden Sie die Datei mit F5 oder STRG+R neu, wenn nötig. Die neueste Meldung steht immer oben auf der Seite.

Quellcode des Skriptes:

<?php
    if (!isset($_GET['p']) || $_GET['p'] != "mysecretpassword") {
        echo "Zugriff verweigert.";
        exit();
    }
    $dir = dirname($_SERVER["SCRIPT_FILENAME"]);
    $account = substr($dir, 9, strpos($dir, "/", 9) -9);
    $errorlog = "/var/www/$account/log/error_log";
    $datei = fopen($errorlog, "r");
    $data = array();
    while ($zeile = fgets($datei)) {
      $zeit = substr($zeile, 1, 24);
      $zeitpunkt = strtotime($zeit);
      $string = substr($zeile, strpos($zeile, "]")+1);
      $string = substr($string, strpos($string, "]")+1);
      $string = substr($string, strpos($string, "]")+1);
      $data[$zeitpunkt] = $string;
    }
    fclose($datei);
    krsort($data);
?>
<html>
<head>
  <title>Errorlog</title>
  <style type="text/css">
    body { background-color:lightblue; }
    table { padding: 2px; border: 2px; border-style: solid; border-color: black; cellpadding: 2px; cellspacing: 2px; }
    table caption { color: blue; text-decoration: underline; font-size: 125%; }
    table td { border:1px solid #000; }
  </style>
</head>
<body>
<table>
<caption>Errorlog f&uuml;r Account: $account</caption>
<?php
    foreach($data as $key => $value) {
      echo "<tr><td>".date("d.m.Y H:i:s",$key)."</td><td>$value</td></tr>".PHP_EOL;
    }
?>
</table>
</body>
</html>