Ich benutze PHP-FPM mit NGINX und ich kann Fehlerprotokoll nicht richtig mit PHP-FPM funktionieren.PHP Skriptfehler trotz php.ini Einstellungen nicht protokollieren
Dies ist mein php.ini
, der relevante Teil:
error_reporting = 'E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE'
error_log = /var/www/logs/php-scripts.error.log
log_errors = 'On'
display_errors = 'Off'
display_startup_errors = 'Off'
html_errors = 'Off'
open_basedir = /var/www/html/:/var/www/.tmp/:/var/www/logs/
upload_tmp_dir = /var/www/.tmp
Relevante Fragmente www-pool.comf
(config von PHP-FPM Master-Prozess geladen):
listen = 9000
user = www-data
group = www-data
request_slowlog_timeout = 10
slowlog = /var/log/php-fpm/$pool.slow.log
chdir = /var/www/html
access.log = /var/log/php-fpm/$pool.access.log
catch_workers_output = Yes
/var/www/logs/
beschreibbar ist durch www-data
- der Benutzer PHP-FPM und der Webserver läuft als.
Nun, wenn ich das in index.php
:
error_log('Some error');
Die Fehlermeldung findet auf /var/www/logs/php-scripts.error.log
ohne Probleme den Weg gebracht. Allerdings, wenn ich versuche, den Fehler auszulösen wie so:
trigger_error('Some error', E_USER_WARNING);
Der Fehler wird nicht in der Protokolldatei aufgezeichnet. Auch, wenn ich absichtlich gebrochen PHP-Skript zu starten, bekomme ich einen 500 Internal Server Error auf dem Bildschirm, aber nichts ist mit dem PHP-Fehlerprotokoll auch immer protokolliert, zB:
// index.php
<?php
echo 'Trigger error'
Beachten Sie die ;
oben fehlt - das berichten sollte ein Fehler im Fehlerprotokoll, ich bekomme nur 500 Interner Serverfehler und keine Ausgabe im Protokoll.
Können Sie helfen? Vielen Dank.
das war es. Als Referenz sind jedoch doppelte Anführungszeichen erlaubt, aus docs: "; Sie können Strings in doppelte Anführungszeichen einschließen include_path =".:/Usr/local/lib/php "" Danke – luqo33
Ja, obwohl das normalerweise nur für die Datei gemacht wird Pfade oder andere Textstrings. Per Konvention werden die error_reporting-Werte und On/Off normalerweise ohne Anführungszeichen gelassen :) – ablopez