display_errors 
错误回显,一般常用语开发模式,但是很多应用在正式环境中也忘记了关闭此选项。错误回显可以暴露出非常多的敏感信息,为攻击者下一步攻击提供便利。推荐关闭此选项。 
display_errors = On 
开启状态下,若出现错误,则报错,出现错误提示 
dispaly_errors = Off 
关闭状态下,若出现错误,则提示:服务器错误。但是不会出现错误提示

log_errors 
在正式环境下用这个就行了,把错误信息记录在日志里。正好可以关闭错误回显。

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

某个产品投入使用后,难免会有错误信息,那么如何记录这些对开发人员非常有用的信息呢? 
将PHP的log_errors开启即可,默认是记录到WEB服务器的日志文件里,比如Apache的error.log文件。 
当然也可以记录错误日志到指定的文件中。

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

另外也可以设定error_log = syslog,使这些错误信息记录到操作系统的日志里。 
display_errors = Off //display中文意思是显示所以display_error=off的意思就是不显示错误了! 
error_reporting 设定错误讯息回报的等级 
2047我记得应该是E_ALL。 
php.ini 文件中有许多配置设置。您应当已经设置好自己的 php.ini 文件并把它放在合适的目录中,就像在 Linux 上安装 PHP 和 Apache 2 的文档说明中所示的那样(请参阅 参考资料)。在调试 PHP 应用程序时,应当知道两个配置变量。下面是这两个变量及其默认值: 
display_errors = Off //关闭所有错误信息,为ON时为显示所有错误信息。 
error_reporting = E_ALL 
E_ALL能从不良编码实践到无害提示到出错的所有信息。E_ALL 对于开发过程来说有点太细,因为它在屏幕上为一些小事(例如变量未初始化)也显示提示,会搞糟浏览器的输出 
所以不建议使用2047,最好把默认值改为:error_reporting = E_ALL & ~E_NOTICE

PHP.ini中display_errors = Off失效的解决

问题: 
PHP设置文件php.ini中明明已经设置display_errors = Off,但是在运行过程中,网页上还是会出现错误信息。 
解决: 
经查log_errors= On,据官方的说法,当这个log_errors设置为On,那么必须指定error_log文件,如果没指定或者指定的文件没有权限写入,那么照样会输出到正常的输出渠道,那么也就使得display_errors 这个指定的Off失效,错误信息还是打印了出来。于是将log_errors = Off,问题就解决了。

经常见到error_reporting(7)直意为:设定错误讯息回报的等级。

value constant 
1 E_ERROR 
2 E_WARNING 
4 E_PARSE 
8 E_NOTICE 
16 E_CORE_ERROR 
32 E_CORE_WARNING 
64 E_COMPILE_ERROR 
128 E_COMPILE_WARNING 
256 E_USER_ERROR 
512 E_USER_WARNING 
1024 E_USER_NOTICE 
2047 E_ALL 
2048 E_STRICT 
然而7=1+2+4 
就是出错时显示1 E_ERROR 2 E_WARNING 4 E_PARSE

<?php
//禁用错误报告
error_reporting(0);
//报告运行时错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);
//报告所有错误
error_reporting(E_ALL);
?> 

转载于:https://www.cnblogs.com/liangdong/p/10521212.html

记录PHP错误日志 display_errors与log_errors的区别相关推荐

  1. PHP错误日志记录:display_errors与log_errors的区别

    我们所做的东西,无论在开发环境还是在生产环境都可能会出现一些问题. 开发环境下,我们会要求错误尽可能详细的呈现出来,错误提示信息越详细越好,越详细越能帮助开发人员确定问题所在并从根本上解决他们. 生产 ...

  2. php慢日志 格式,php慢日志记录和错误日志(转)

    php的日志是值得关注的,包含错误日志和慢日志 一 错误输出 找到php.ini log_errors = On ; Log errors to specified file. error_log = ...

  3. DBMS_ERRLOG记录DML错误日志(一)

    当一个DML运行的时候,如果遇到了错误,则这条语句会整个回滚,就好像没有执行过.不过对于一个大的DML而言,如果个别数据错误而导致整个语句的回滚,会浪费很多的资源和运行时间,从10g开始Oracle支 ...

  4. php输出mysql错误日志_PHP_PHP中把错误日志保存在系统日志中(Windows系统),【将错误记录到系统日志中】 - phpStudy...

    PHP中把错误日志保存在系统日志中(Windows系统) [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: error_log = syslog 或者在运行时使用 i ...

  5. php 错误记录_PHP中把错误日志保存在系统日志中(Windows系统)

    [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: error_log = syslog 或者在运行时使用 ini_set() 函数设置. [例1] //关闭错误显示 ...

  6. php出错日志记录_关于PHP错误日志踩过的一些坑

    nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进程来处理, ...

  7. PHP项目中,记录错误日志

    一.场景介绍: 环境:LNMP 我们通常是通过nginx的错误日志来分析分错的,也就是我们在各个server中定义的error_log. 比如下面这样,就是将错误日志定义在/etc/nginx/log ...

  8. php 系统日志,PHP中把错误日志保存在系统日志中(Windows系统)

    PHP中把错误日志保存在系统日志中(Windows系统) [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: 复制代码 代码如下: error_log = syslog ...

  9. nginx php-fpm 输出php错误日志(转)

    nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进程来处理, ...

  10. nginx php访问日志配置,nginx php-fpm 输出php错误日志的配置方法

    由于nginx仅是一个web 服务器,因此 nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进 ...

最新文章

  1. ROS中base_link, odom, fixed_frame, target_frame和虚拟大地图map的关系
  2. 终于把微软BING搜索-SPTAG算法的原理搞清了
  3. 与Susan Fowler探讨生产就绪微服务之问答
  4. 「MTA」的「錯誤訊息代碼」
  5. docker -v 文件夹下没有数据_详细!快速入门指南!Docker
  6. Ubuntu 调节屏幕亮度
  7. Hive 任务卡在 map = 0%, reduce = 0%
  8. 【案例】护士发错药怎么处理?
  9. 使用 Intellij Idea 打包 java 工程为可执行 jar 包
  10. 盘点数据治理的6个价值
  11. 开源软件free download manager在windows defender中报毒
  12. vc 时间字符串转时间戳_Instant(时间戳)
  13. 同时买票是怎么实现的_腰包怎么背才更新潮?教你3种时尚背法,告别土味老气风...
  14. C# 类型转换(is和as运算符)
  15. ARM介绍1:发展史
  16. 感受MapXtreme2004之二
  17. 计算机程序员带什么手表,程序员只爱格子衫?这些手表程序员也喜欢!
  18. 图片太大了怎么压缩?图片缩小kb怎么操作?
  19. Revit二次开发入门--创建一个简单的程序
  20. exist优化 in mysql_MySQL 子查询优化[IN/EXISTS]--smei join

热门文章

  1. Hyper-V 2016 系列教程40 使用 PowerShell 实现虚拟机自动化和管理虚拟机
  2. Chapter 4. 聚合函数、字符串函数、类型转换函数、时间日期函数
  3. 精彩的javascript对象和数组混合相加
  4. ubuntu ftp server配置
  5. [转]C# 3.0入门系列(二)
  6. 阿里十大最受开发者欢迎的工具!
  7. 卧槽!新来的妹纸rm -rf把公司整个数据库删没了,整个项目组慌了~
  8. IDEA 的这款插件真是逆天了,代码那都不是事!
  9. 兼顾高可靠和低延迟,Google打算用QUIC协议替代TCP/UDP
  10. 一起来看小米发布会!