FastCGI will nicht richtig PHP-Fehler protokollieren. Nun, das ist nicht ganz richtig: Es protokolliert Fehler gut, mit ein wenig Fiedeln; Es wird nur nichts anderes protokolliert, z. B. Warnungen.Nginx + FastCGI + PHP (PHP-FPM) nicht Protokollierung gefangen Fehler/Warnungen
Der berüchtigte FastCGI -> Fehler Nginx Protokoll ist kein Problem, unbedingt. Fehler und Warnungen von php-fpm gehen direkt zu Nginx - aber nur wenn sie nicht gefunden werden. Das heißt, wenn set_error_handler
erfolgreich einen Fehler abfängt, wird kein Protokolleintrag angehängt. Dies bedeutet, dass ich Parse-Fehler sehen kann, aber das ist es auch schon.
php-fpm protokolliert keine PHP-Fehler von selbst (getrennt von nginx) ohne ein bisschen ein Hack. php-fpm Instanzkonfigurationsdatei enthält diese beiden Zeilen standardmäßig:
php_admin_value[error_log] = /mnt/log/php-fpm/default.log
php_admin_flag[log_errors] = on
ich den error_log Pfad geändert, offensichtlich. Ich hatte die folgende Zeile hinzufügen, um es tatsächlich etwas zu melden Sie sich zu bekommen:
php_admin_value[error_reporting] = E_ALL & ~E_DEPRECATED & ~E_STRICT
Version Anmerkung: der E_STRICT Teil ist unnötig, da ich PHP 5.3.27 bin mit, aber ich plane auf ein Upgrade auf 5.4 bei einigen Punkt. Mit dieser Zeile werden Fehler - und nur Fehler - in /mnt/log/php-fpm/default.log
protokolliert. Jetzt setzt dies error_reporting
auf den gleichen Wert, den ich in php.ini eingestellt habe, also ist hier offensichtlich etwas falsch. Außerdem werden gefangene Fehler nicht protokolliert: Das Verhalten ist identisch mit dem des nginx-Protokolls. Ich habe versucht, stattdessen den numerischen Wert (22527) zu verwenden, aber immer noch kein Glück.
I, in denen ist es egal, melden Sie sich die Einträge am Ende (nginx gegen php-fpm) Datei, aber ich habe gefangen Fehler müssen irgendwo angemeldet sein. Ich könnte meine eigenen Fehler- und Ausnahme-Handler verwenden, aber das ist ein bisschen hackisch, also würde ich das lieber vermeiden.
Bin ich verrückt in Hinweis darauf, dass Apache nicht dieses Problem haben? – Zenexer