修改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 相关文章推荐
4.与数据库的连接
Oct 09 PHP
PHP执行速率优化技巧小结
Mar 15 PHP
php中用文本文件做数据库的实现方法
Mar 27 PHP
基于PHP常用函数的用法详解
May 10 PHP
与文件上传有关的php配置参数总结
Jun 14 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
php查看网页源代码的方法
Mar 13 PHP
使用纯php代码实现页面伪静态的方法
Jul 25 PHP
Symfony2针对输入时间进行查询的方法分析
Jun 28 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
Sep 30 PHP
PHP数组array类常见操作示例
May 15 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
PHP date函数参数详解
2006/11/27 PHP
php 冒泡排序 交换排序法
2011/05/10 PHP
用来解析.htgroup文件的PHP类
2012/09/05 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
jQuery 页面载入进度条实现代码
2009/02/08 Javascript
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
Javascript 面向对象特性
2009/12/28 Javascript
document.getElementById介绍
2011/09/13 Javascript
jquery等宽输出文字插件使用介绍
2013/09/18 Javascript
JavaScript文档碎片操作实例分析
2015/12/12 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
2017/03/01 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
JS中正则表达式要注意lastIndex属性
2017/08/08 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
2018/03/29 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
vue封装可复用组件confirm,并绑定在vue原型上的示例
2019/10/31 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
Javascript模块化机制实现原理详解
2020/04/02 Javascript
Vue切换组件实现返回后不重置数据,保留历史设置操作
2020/07/21 Javascript
Python封装shell命令实例分析
2015/05/05 Python
Python发送form-data请求及拼接form-data内容的方法
2016/03/05 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
一月红领巾广播稿
2014/02/11 职场文书
金融管理应届生求职信
2014/02/20 职场文书
大学生毕业求职信
2014/06/12 职场文书
学校运动会报道稿
2014/09/23 职场文书
入股合作协议书
2014/10/12 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
董事长年会致辞
2015/07/29 职场文书
远程教育学习心得体会
2016/01/23 职场文书
MySQL数据库表约束讲解
2022/06/21 MySQL