实现Nginx中使用PHP-FPM时记录PHP错误日志的配置方法

 更新时间:2020年07月01日 11:50:33   投稿:junjie  
最近在本地搭建的LNMP的开发环境。为了开发的时候不影响前端的正常开发就屏蔽的PHP里面php.ini中的一些错误提示。但是这样一来,就影响到了后端开发的一些问题比如不能及时调试开发中的一些问题

今天一PHP程序运行出现问题,想看看错误信息,但是Nginx环境如何查看PHP错误信息?常规做法是看log日志文件,但是首先要做的是能让PHP把错误信息输出到log文件里。原以为很简单,直接在php.ini里设置下log日志文件路径即可,但测试后发现这样做是不行的。那问题在哪?

通过查阅了一些相关的文章资料,原来主要根源在于php-fpm的配置文件php-fpm.conf。

php-fpm的配置文件php-fpm.conf中默认是关闭worker进程的错误输出,直接把他们重定向到/dev/null,所以我们看不到php的错误日志。

要解决这一问题,只需设置下php-fpm.conf即可。我使用的关键代码如下:

[global]
pid = /usr/local/php/var/run/php-fpm.pid
error_log = /usr/local/php/var/log/php-fpm.log
log_level = notice

[www]
; 下面这句不能少,记录PHP执行错误日志
catch_workers_output = yes

解释:

1、error_log 是定义日志文件路径

2、log_level = notice 不能少

3、catch_workers_output = yes 不能少

通过这样设置后,php的错误信息就会直接写入error_log定义的日志文件里了。

重启php服务,方法:

service php-fpm restart

试试有无效果?

上述方法无效?再按下面方法设置php.ini

网上不少文章说到还要设置php.ini的error_log路径,但我测试发现,php.ini的error_log路径设置是没有意义的,这就解释了为什么一开始我只设置php.ini日志输出路径却没有效果的原因。也许是别人的php-fpm.conf设置与我不同,造成还需要设置php.ini的error_log路径。网友们如果发现我前面提到的设置方法不可行,那么可以再设置一下php.ini,关键代码是如下三行:

log_errors = On
error_log = "/usr/local/php/var/log/php_errors.log"
error_reporting = E_ALL & ~E_NOTICE

解释:

1、log_errors = On 不能少

2、error_log 设置日志文件路径

3、error_reporting 的值设为 E_ALL & ~E_NOTICE

下面是其他网友的补充

nginx与apache不一样,在apache中可以直接指定php的错误日志,那样在php执行中的错误信息就直接输入到php的错误日志中,可以方便查询。

在nginx中事情就变成了这样:nginx只对页面的访问做access记录日志。不会有php的error log 信息。nginx把对php的请求发给php-fpm fastcgi进程来处理,默认的php-fpm只会输出php-fpm的错误信息,在php-fpm的errors log里也看不到php的errorlog。

原因是php-fpm的配置文件php-fpm.conf中默认是关闭worker进程的错误输出,直接把他们重定向到/dev/null,所以我们在nginx的error log 和php-fpm的errorlog都看不到php的错误日志。

所以我们要进行如下的设置就能查看到nginx下php-fpm不记录php错误日志的方法:

1,修改php-fpm.conf中的配置,如果没有请增加:

[global]
; Note: the default prefix is /usr/local/php/var
error_log = log/php_error_log
[www]
catch_workers_output = yes

2.修改php.ini中配置,没有则增加:

log_errors = On
error_log = "/usr/local/php/var/log/error_log"
error_reporting=E_ALL&~E_NOTICE

3.重启php-fpm

当PHP执行错误时就能看到错误日志在”/usr/local/lnmp/php/var/log/php_error_log”中了

如果出现:

[root@localhost etc]# service php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm [17-Apr-2014 18:40:52] ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry 'catch_workers_
[17-Apr-2014 18:40:52] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
[17-Apr-2014 18:40:52] ERROR: FPM initialization failed
 failed

那请在第一步的时候,认真将配置写入相对应的组中,不然就出现上面的:

复制代码 代码如下:
ERROR: [/usr/local/php/etc/php-fpm.conf:5] unknown entry ‘catch_workers_output'

最后看看效果:

相关文章

  • Windows下Nginx + PHP5 的安装与配置方法

    Windows下Nginx + PHP5 的安装与配置方法

    Nginx 是一个轻量级的高性能 Http WebServer,以事件驱动方式编写,因此相比 Apache 而言,Nginx 更加稳定、性能更好,而且配置简单,资源占用较低。以下是我在 Windows 7 安装中 Nginx 和 PHP5.3 的步骤。
    2010-07-07
  • Nginx location(正则)使用

    Nginx location(正则)使用

    这篇文章主要介绍了Nginx location(正则)使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 详解Nginx日志配置及日志切割

    详解Nginx日志配置及日志切割

    本篇文章主要介绍了详解Nginx日志配置及日志切割,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • 利用Nginx_geo模块实现CDN调度的配置方法

    利用Nginx_geo模块实现CDN调度的配置方法

    今天小编就为大家分享一篇利用Nginx_geo模块实现CDN调度的配置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • linux设置Nginx自动重启的实现

    linux设置Nginx自动重启的实现

    在Linux系统中,设置Nginx服务开机自动启动及意外停止后自动重启是保持服务稳定运行的关键步骤,本文详细介绍了如何使用systemctl命令和配置systemd服务文件来实现这一功能,感兴趣的可以了解一下
    2024-09-09
  • Nginx 平滑升级的实现(拒绝服务漏洞)

    Nginx 平滑升级的实现(拒绝服务漏洞)

    本文主要介绍了Nginx 平滑升级的实现(拒绝服务漏洞),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02
  • Nginx启动显示80端口占用问题的解决方案

    Nginx启动显示80端口占用问题的解决方案

    这篇文章主要介绍了Nginx启动显示80端口占用问题的解决方案,文中通过代码示例和图文讲解的非常详细,对大家解决问题有一定的帮助,需要的朋友可以参考下
    2024-04-04
  • Nginx流量同时转发多后端(流量镜像分发)

    Nginx流量同时转发多后端(流量镜像分发)

    在需要同时将请求转发至多个后端服务的场景中,Nginx的mirror模块提供了流量镜像分发的功能,本文就来介绍一下Nginx流量同时转发多后端(流量镜像分发),感兴趣的可以了解一下
    2024-10-10
  • Nginx中server_name的超详细使用指南

    Nginx中server_name的超详细使用指南

    这篇文章主要介绍了Nginx的server_name指令及其在DNS解析和多域名配置中的应用,包括如何使用通配符和正则表达式进行匹配,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • nginx虚拟主机配置实例详解

    nginx虚拟主机配置实例详解

    这篇文章主要介绍了nginx虚拟主机配置实例详解的相关资料,需要的朋友可以参考下
    2017-06-06

最新评论