IIS 7.5 FastCGI: PHP log unregelmäßig?



  • Hi!

    Irgendwie werden PHP Fehler nur unregelmäßig geloggt. Also die php.log wird mal erstellt/aktualisiert, und mal nicht, egal wie oft ich die fehlerhafte Seite aufrufe.

    Die Settings müssten aber stimmen.

    error_log = "C:\..\php.log"
    log_errors = On
    fastcgi.logging = 0

    test3.php:
    <?
    error_reporting(E_ALL);
    * // Dies soll einen Fehlerlog verursachen, habe auch schon Anderes versucht
    ?>

    Anfangs gings. Seite erstellt, aufgerufen und die php.log war da, mit der richtigen Fehlermeldung.
    Nach erneutem Seitenaufruf wurde der Fehler aber nicht mehr geloggt. Und jetzt geht irgendwie gar nix mehr. Habe die php.log gelöscht, aber sie wird einfach nicht mehr neu erstellt, egal wie oft ich die fehlerhafte Seite aufrufe.
    Auch ein kompletter IIS restart bringt grade nix.

    Was ist da los?



  • Hmm, bei diesem Skript zB funktioniert der Fehleroutput problemlos:

    <?
    error_reporting(E_ALL);
    testfunc
    ?>

    -> PHP Notice: Use of undefined constant testfunc

    Aber die Seite bleibt dann sowohl lokal als auch remote weiß. Rufe ich jedoch wieder das vorige Skript auf (Mit dem *), bekomme ich lokal "HTTP-Fehler 500.0 - Internal Server Error (usw.)" und remote "Die Seite kann aufgrund eines internen Serverfehlers nicht angezeigt werden." und es wird kein php.log erzeugt!

    Warum kann der Fehler nicht geloggt werden?



  • Zunächst solltest du bei PHP darauf achten, dass das Einleitungstag so aussieht.

    <?php
    ...
    ?>
    

    In deinem letzten Post hast du bereits richtig erkannt, dass deine nicht gefundene Funktion lediglich eine "NOTICE" wirft, das Script allerdings weiterläuft und nicht abbricht.

    Der * sorgt für ein kompletten Parserfehler, der den Abbruch des Skriptes bewirkt (Server Error blabla)
    Weiß nicht, was man bei iis einstellen muss, damit die original-PHP-Meldung angezeigt wird. Ich hab Apache.

    Was das Problem mit dem Logging angeht, kann ich jetzt von hieraus nicht nachvollziehen. Bekannt bei mir ist, dass das Einleitungs-PHP-Tag <? ohne php einfach übersprungen wird.

    http://www.activeservers.com/500_error_php.aspx

    Edit: Link ergänzt


Anmelden zum Antworten