我试图找出我的安装程序中的PHP错误所在。我将nginx作为PHP-FPM的反向代理运行,但没有看到我的应用程序正在生成的各种E_NOTICE或E_WARNING消息。我知道它们正在发生的唯一原因是响应失败和NewRelic捕获堆栈跟踪。
这是日志记录配置:
nginx.conf
proxy_intercept_errors on;
fastcgi_intercept_errors on;
php.ini
error_reporting = E_ALL
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = On
error_log = syslog
php-fpm.conf
[global]
error_log = /var/log/php-fpm/fpm-error.log
[www]
access.log = /var/log/php-fpm/access.log
access.format = "%t \"%m %r%Q%q\" %s %{mili}dms %{kilo}Mkb %C%%"
catch_workers_output = yes
php_flag[display_errors] = on
php_admin_flag[log_errors] = true
rsyslog.conf
:syslogtag, contains, "php" /var/log/php-fpm/error.log
我已经将PHP配置为登录到syslog,但是FPM没有syslog功能,因此它正在记录到文件。我并不在乎错误在哪里结束,只是错误在哪里结束。
关于如何使它起作用的任何线索?
我会尝试先显示错误(在test.php文件中,您可以手动触发错误),然后将其放入文件中,依此类推...。可能是由于cli触发的错误,因此使用了不同的php.ini
—
adrian7
你有尝试过吗?php_admin_value [error_log] = /var/log/php-fpm/www-error.log php_admin_flag [log_errors] =启用
—
Ghasem Pahlavan