Neo Anderson's Blog

记录一次异常排查问题- Php/nginx设置异常

字数统计: 296阅读时长: 1 min
2019/07/24

前置: 最近业务更新迭代过程中,修改了laravel底层的composer包依赖扩展,
发布到生产环境后,框架发生了异常, 无法执行后续业务功能, 但是nginx日志,业务日志完全没有暴露出问题,后续会说明每一个问题点.

  • 开发/测试环境没有类似问题产生,只有生产环境.
  • 单一摘掉发生异常的一台主机,直接调用;
  • 接口调用: curl 响应服务的接口 发现确实返回了框架级异常文案, 但是http的状态码却是200
  • 查询nginx access.log 接口状态码200
  • 查询fpm相关log 无异常
  • 发生了错误没有抛出,肯定是错误设置相关的.
  • php -i 查询异常配置 php -i | grep error
  • phpfpm -i 处查询异常配置 phpfpm -i | grep error
  • diff 本地/测试/生产环境 异常配置
  • 发现fpm配置 php_flag[display_errors] 默认值 off 线上 on
  • 核对官方手册 php_flag[display_errors] = on,开启它,php语法错误会返回一个空白页,nginx 会认为是一个正常的响应。
  • 发现问题,逐台机器/分区更改配置,修复完成
CATALOG