修改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脚本的10个技巧(4)
Oct 09 PHP
对javascript和select部件的结合运用
Oct 09 PHP
phpfans留言版用到的install.php
Jan 04 PHP
PHP高手需要要掌握的知识点
Aug 21 PHP
thinkphp中ajax与php响应过程详解
Dec 08 PHP
PHP实现生成带背景的图形验证码功能
Oct 03 PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 PHP
php创建图像具体步骤
Mar 13 PHP
实现php删除链表中重复的结点
Sep 27 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
PHP抽象类和接口用法实例详解
Jul 20 PHP
Laravel如何实现自动加载类
Oct 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
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
使用PHP编写发红包程序
2015/07/22 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
php实现的操作excel类详解
2016/01/15 PHP
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
JQuery 构建客户/服务分离的链接模型中Table分页代码效率初探
2010/01/22 Javascript
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
jquery validate demo 基础
2015/10/29 Javascript
javascript中return,return true,return false三者的用法及区别
2015/11/17 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
2017/08/31 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
ES6 Object属性新的写法实例小结
2019/06/25 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
[46:10]2014 DOTA2国际邀请赛中国区预选赛 CnB VS HGT
2014/05/21 DOTA
[01:09:16]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第一场 1月25日
2021/03/11 DOTA
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
Python设计模式之MVC模式简单示例
2018/01/10 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
重构Python代码的六个实例
2020/11/25 Python
利用HTML5+CSS3实现3D转换效果实例详解
2017/05/02 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
2013/03/25 HTML / CSS
Linux开机引导的步骤是什么
2015/10/19 面试题
什么时候用assert
2015/05/08 面试题
后勤人员岗位职责
2013/12/17 职场文书
倡议书范文格式
2014/05/12 职场文书
党员自评材料范文
2014/12/17 职场文书
公司员工奖惩制度
2015/08/04 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书
基于Python实现对比Exce的工具
2022/04/07 Python