加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx FastCGI PHP(php-fpm)没有记录捕获的错误/警告

发布时间:2020-12-13 21:01:40 所属栏目:Nginx 来源:网络整理
导读:FastCGI不希望正确记录PHP错误.嗯,这并不完全正确:它记录错误很好,有点摆弄;它只是不会记录任何其他内容,例如警告. 臭名昭着的FastCGI > Nginx日志错误不一定是个问题.来自php-fpm的错误和警告会直接转到Nginx 但前提是它们没有被捕获.也就是说,如果set_err

FastCGI不希望正确记录PHP错误.嗯,这并不完全正确:它记录错误很好,有点摆弄;它只是不会记录任何其他内容,例如警告.

臭名昭着的FastCGI – > Nginx日志错误不一定是个问题.来自php-fpm的错误和警告会直接转到Nginx – 但前提是它们没有被捕获.也就是说,如果set_error_handler成功拦截错误,则不会附加任何日志条目.这意味着我可以看到解析错误,但这就是它.

php-fpm本身并不记录PHP错误(与nginx分开),没有任何破解. php-fpm的实例配置文件默认包含这两行:

php_admin_value[error_log] = /mnt/log/php-fpm/default.log
php_admin_flag[log_errors] = on

我明显改变了error_log路径.我必须添加以下行以使其实际记录任何内容:

php_admin_value[error_reporting] = E_ALL & ~E_DEPRECATED & ~E_STRICT

版本说明:E_STRICT部分是不必要的,因为我使用的是PHP 5.3.27,但我计划在某些时候升级到5.4.使用此行,它会将错误(仅错误)记录到/mnt/log/php-fpm/default.log.现在,这将error_reporting设置为我在php.ini中设置的相同值,所以这里显然有些错误.此外,它不记录捕获的错误:行为与nginx日志的行为相同.我尝试使用数值(22527)代替,但仍然没有运气.

我不关心条目最终在哪个日志文件中(nginx与php-fpm),但我确实需要在某处记录捕获的错误.我可以尝试注入我自己的错误和异常处理程序,但这有点hackish,所以我宁愿避免这种情况.

最佳答案
我在PHP-FPM的池配置文件中使用此指令:

catch_workers_output = yes

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读