修改php.ini以达到屏蔽错误信息并记录日志


Posted in PHP onJune 16, 2013

那是因为php.ini中关闭了错误显示,将错误写成了文件,这是人为设置的结果,display_errors =on就好了。
不过不显示错误倒安全点,建议调试时打开,然后提供服务时关闭。

提供一点资料给你:

display_errors = On

php缺省是打开错误信息显示的,我们把它改为:

display_errors = Off

关闭错误显示后,php函数执行错误的信息将不会再显示给用户,这样能在一定程度上防止攻击者从错误信息得知脚本的物理位置,以及一些其它有用的信息,起码给攻击者的黑箱检测造成一定的障碍。这些错误信息可能对我们自己有用,可以让它写到指定文件中去,那么修改以下:

log_errors = Off

改为:

log_errors = On

以及指定文件,找到下面这行:

;error_log = filename

去掉前面的;注释,把filename改为指定文件,如/usr/local/apache/logs/php_error.log

error_log = /usr/local/apache/logs/php_error.log

这样所有的错误都会写到php_error.log文件里。

====================================

error_reporting
配置错误信息回报的等级。
语法: int error_reporting(int [level]);
返回值: 整数
函数种类: PHP 系统功能

本函数用来配置错误信息回报的等级,参数 level 是一个整数的位遮罩 (bitmask),见下表。
遮罩值 表示名称
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING

E_NOTICE 表示一般情形不记录,只有程序有错误情形时才用到,例如企图存取一个不存在的变量,或是呼叫 stat() 函数检视不存在的文件。
E_WARNING 通常都会显示出来,但不会中断程序的执行。这对除错很有效。例如:用有问题的正则表达式呼叫 ereg()。
E_ERROR 通常会显示出来,亦会中断程序执行。意即用这个遮罩无法追查到内存配置或其它的错误。
E_PARSE 从语法中解析错误。
E_CORE_ERROR 类似 E_ERROR,但不包括 PHP 核心造成的错误。
E_CORE_WARNING 类似 E_WARNING,但不包括 PHP 核心错误警告。
————————————
额外:
1.
php文件中
error_reporting(7) 其中的7 就是 1+2+4,也就是回报 1 E_ERROR 2 E_WARNING 4 E_PARSE
2.
php.ini中
display_errors = Off //默认是关闭错误提示
error_reporting = E_ALL //显示从不良编码实践到无害提示到出错的所有信息,由于回报的信息太细化了,包括了无害信息,为了在开发过程中能看到实际的提示,建议配置为 error_reporting = E_ALL & ~E_NOTICE

PHP 相关文章推荐
PHP中获取变量的变量名的一段代码的bug分析
Jul 07 PHP
PHP中几个常用的魔术常量
Feb 23 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
Jun 29 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
ThinkPHP缓存方法S()概述
Jun 13 PHP
PHP中4种常用的抓取网络数据方法
Jun 04 PHP
ThinkPHP模型详解
Jul 27 PHP
php实现的数字验证码及数字运算验证码
Jul 30 PHP
ThinkPHP和UCenter接口冲突的解决方法
Jul 25 PHP
PHP设计模式之抽象工厂模式实例分析
Mar 25 PHP
laravel框架学习笔记之组件化开发实现方法
Feb 01 PHP
PHP vsprintf()函数格式化字符串操作原理解析
Jul 14 PHP
php fsockopen伪造post与get方法的详解
Jun 14 #PHP
探讨:parse url解析URL,返回其组成部分
Jun 14 #PHP
PHP可变函数的使用详解
Jun 14 #PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 #PHP
探讨:如何通过stats命令分析Memcached的内部状态
Jun 14 #PHP
利用curl 多线程 模拟 并发的详解
Jun 14 #PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
Jun 14 #PHP
You might like
php生成xml简单实例代码
2009/12/16 PHP
PHP-Fcgi下PHP的执行时间设置方法
2013/08/02 PHP
Javascript 陷阱 window全局对象
2008/11/26 Javascript
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
Javascript this 的一些学习总结
2012/08/31 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
jQuery简单操作cookie的插件实例
2016/01/13 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
mongoose中利用populate处理嵌套的方法
2017/05/26 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
vue中将html字符串转换成html后遇到的问题小结
2018/12/10 Javascript
vue-cli中使用高德地图的方法示例
2019/03/28 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
2019/06/17 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
vue+vant 上传图片需要注意的地方
2021/01/03 Vue.js
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
python主线程与子线程的结束顺序实例解析
2019/12/17 Python
Django REST Swagger实现指定api参数
2020/07/07 Python
python实现简单猜单词游戏
2020/12/24 Python
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
技校生自我鉴定范文
2013/09/26 职场文书
高中三年学习生活的自我评价
2013/10/10 职场文书
《广玉兰》教学反思
2014/04/14 职场文书
法人委托书范本格式
2014/09/15 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书