记录PHP错误日志 display_errors与log_errors的区别
display_errors
错误回显,一般常用语开发模式,但是很多应用在正式环境中也忘记了关闭此选项。错误回显可以暴露出非常多的敏感信息,为攻击者下一步攻击提供便利。推荐关闭此选项。
display_errors = On
开启状态下,若出现错误,则报错,出现错误提示
dispaly_errors = Off
关闭状态下,若出现错误,则提示:服务器错误。但是不会出现错误提示
log_errors
在正式环境下用这个就行了,把错误信息记录在日志里。正好可以关闭错误回显。
对于PHP开发人员来说,一旦某个产品投入使用,那么第一件事就是应该将display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。
某个产品投入使用后,难免会有错误信息,那么如何记录这些对开发人员非常有用的信息呢?
将PHP的log_errors开启即可,默认是记录到WEB服务器的日志文件里,比如Apache的error.log文件。
当然也可以记录错误日志到指定的文件中。
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的区别相关推荐
- PHP错误日志记录:display_errors与log_errors的区别
我们所做的东西,无论在开发环境还是在生产环境都可能会出现一些问题. 开发环境下,我们会要求错误尽可能详细的呈现出来,错误提示信息越详细越好,越详细越能帮助开发人员确定问题所在并从根本上解决他们. 生产 ...
- php慢日志 格式,php慢日志记录和错误日志(转)
php的日志是值得关注的,包含错误日志和慢日志 一 错误输出 找到php.ini log_errors = On ; Log errors to specified file. error_log = ...
- DBMS_ERRLOG记录DML错误日志(一)
当一个DML运行的时候,如果遇到了错误,则这条语句会整个回滚,就好像没有执行过.不过对于一个大的DML而言,如果个别数据错误而导致整个语句的回滚,会浪费很多的资源和运行时间,从10g开始Oracle支 ...
- php输出mysql错误日志_PHP_PHP中把错误日志保存在系统日志中(Windows系统),【将错误记录到系统日志中】 - phpStudy...
PHP中把错误日志保存在系统日志中(Windows系统) [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: error_log = syslog 或者在运行时使用 i ...
- php 错误记录_PHP中把错误日志保存在系统日志中(Windows系统)
[将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: error_log = syslog 或者在运行时使用 ini_set() 函数设置. [例1] //关闭错误显示 ...
- php出错日志记录_关于PHP错误日志踩过的一些坑
nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进程来处理, ...
- PHP项目中,记录错误日志
一.场景介绍: 环境:LNMP 我们通常是通过nginx的错误日志来分析分错的,也就是我们在各个server中定义的error_log. 比如下面这样,就是将错误日志定义在/etc/nginx/log ...
- php 系统日志,PHP中把错误日志保存在系统日志中(Windows系统)
PHP中把错误日志保存在系统日志中(Windows系统) [将错误记录到系统日志中] 在 php.ini 中将 error_log 设置为: 复制代码 代码如下: error_log = syslog ...
- nginx php-fpm 输出php错误日志(转)
nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进程来处理, ...
- nginx php访问日志配置,nginx php-fpm 输出php错误日志的配置方法
由于nginx仅是一个web 服务器,因此 nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进 ...
最新文章
- ROS中base_link, odom, fixed_frame, target_frame和虚拟大地图map的关系
- 终于把微软BING搜索-SPTAG算法的原理搞清了
- 与Susan Fowler探讨生产就绪微服务之问答
- 「MTA」的「錯誤訊息代碼」
- docker -v 文件夹下没有数据_详细!快速入门指南!Docker
- Ubuntu 调节屏幕亮度
- Hive 任务卡在 map = 0%, reduce = 0%
- 【案例】护士发错药怎么处理?
- 使用 Intellij Idea 打包 java 工程为可执行 jar 包
- 盘点数据治理的6个价值
- 开源软件free download manager在windows defender中报毒
- vc 时间字符串转时间戳_Instant(时间戳)
- 同时买票是怎么实现的_腰包怎么背才更新潮?教你3种时尚背法,告别土味老气风...
- C# 类型转换(is和as运算符)
- ARM介绍1:发展史
- 感受MapXtreme2004之二
- 计算机程序员带什么手表,程序员只爱格子衫?这些手表程序员也喜欢!
- 图片太大了怎么压缩?图片缩小kb怎么操作?
- Revit二次开发入门--创建一个简单的程序
- exist优化 in mysql_MySQL 子查询优化[IN/EXISTS]--smei join
热门文章
- Hyper-V 2016 系列教程40 使用 PowerShell 实现虚拟机自动化和管理虚拟机
- Chapter 4. 聚合函数、字符串函数、类型转换函数、时间日期函数
- 精彩的javascript对象和数组混合相加
- ubuntu ftp server配置
- [转]C# 3.0入门系列(二)
- 阿里十大最受开发者欢迎的工具!
- 卧槽!新来的妹纸rm -rf把公司整个数据库删没了,整个项目组慌了~
- IDEA 的这款插件真是逆天了,代码那都不是事!
- 兼顾高可靠和低延迟,Google打算用QUIC协议替代TCP/UDP
- 一起来看小米发布会!