主要修改两个地方.
fpm.d/xxx.conf 中添加配置项
catch_workers_output = yes
php_flag[display_errors] = on
php_flag[display_startup_errors] = on
php_admin_value[error_log] = /data/logs/fpm-php.www.log
php_admin_flag[log_errors] = on
2. nginx/conf/extra/xx.conf
server中添加
error_log /data/logs/xxx/web_error.log;
另外一个需要注意的是,很多php框架都有异常捕获功能,会返回500状态码和对应的错误信息,假如此时 Nginx 的配置文件配置了
error_page 500 502 503 504 /50x.html;
那就会导致页面无法显示错误提示,而直接显示nginx自带的错误界面,且这个时候也不会被记入log里,因为这是程序修改返回状态码,而非真正的错误。因此,直接注释上面那行配置即可。