zoukankan      html  css  js  c++  java
  • PHP错误日志记录:display_errors与log_errors的区别

    我们所做的东西,无论在开发环境还是在生产环境都可能会出现一些问题。

    开发环境下,我们会要求错误尽可能详细的呈现出来,错误提示信息越详细越好,越详细越能帮助开发人员确定问题所在并从根本上解决他们。

    生产环境下,为了良好的用户体验以及网站安全,我们会尽可能少的出现错误提示。

    那具体到php语言中,我们又要怎么做呢?

    首先了解一下php中的两个配置项:

    (1)display_error  

    display_errors ,错误回显,一般常用与开发环境。如果在生产环境中开启选项,错误回显会暴露出非常多的敏感信息,为攻击者下一步攻击提供便利。推荐关闭此选项。 

    display_errors = On 

    开启状态下,若出现错误,则报错,出现错误提示 

    dispaly_errors = Off 

    关闭状态下,若出现错误,则提示:服务器错误。但是不会出现错误提示 

    对于PHP开发人员来说,一旦某个产品投入使用,那么第一件事就是应该将display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。

                 既然生产环境中不能出现错误提示信息,而当网站出现问题,我们有需要查看具体的错误信息时有需要怎么做呢?没错,这就用到了下面的错误日志记录。

    (2)log_error

              log_error,错误日志,一般用于生产环境中。开发人员可以分析错误日志内容,进而发现并解决问题。

              log_error=on 开启错误日志  

              log_error=off  关闭错误日志

              日志默认是记录到WEB服务器的日志文件里,比如Apache的error.log文件。 当然也可以记录错误日志到指定的文件中。

         # vim /etc/php.inidisplay_errors = Off 
         log_errors = On 
         error_log = /var/log/php-error.log 

              在生产环境中,一旦开启了错误日志记录功能,个人强烈建议设置错误日志目录。

  • 相关阅读:
    第三方驱动备份与还原
    Greenplum 解决 gpstop -u 指令报错
    yum安装(卸载)本地rpm包的方法(卸载本地安装的greenplum 5.19.rpm)
    Java JUC(java.util.concurrent工具包)
    netty 详解(八)基于 Netty 模拟实现 RPC
    netty 详解(七)netty 自定义协议解决 TCP 粘包和拆包
    netty 详解(六)netty 自定义编码解码器
    netty 详解(五)netty 使用 protobuf 序列化
    netty 详解(四)netty 开发 WebSocket 长连接程序
    netty 详解(三)netty 心跳检测机制案例
  • 原文地址:https://www.cnblogs.com/linux-centos/p/9238136.html
Copyright © 2011-2022 走看看