修改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 相关文章推荐
抓取YAHOO股票报价的类
May 15 PHP
PHP daddslashes 使用方法介绍
Oct 26 PHP
php中文验证码实现示例分享
Jan 12 PHP
php备份数据库类分享
Apr 14 PHP
PHP加密解密类实例分析
Apr 20 PHP
php结合正则批量抓取网页中邮箱地址
May 19 PHP
Yii+MYSQL锁表防止并发情况下重复数据的方法
Jul 14 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
Smarty3配置及入门语法
Feb 22 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
Aug 01 PHP
Laravel利用gulp如何构建前端资源详解
Jun 03 PHP
详解阿里云视频直播PHP-SDK接入教程
Jul 09 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
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
一个网马的tips实现分析
2010/11/28 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】
2016/12/19 Javascript
node中使用es5/6以及支持性与性能对比
2017/08/11 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
js实现购物车商品数量加减
2020/09/21 Javascript
[01:40]2014DOTA2国际邀请赛 三冰SOLO赛后采访恶搞
2014/07/09 DOTA
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
[58:15]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 NB vs Liquid
2018/04/02 DOTA
tornado捕获和处理404错误的方法
2014/02/26 Python
仅利用30行Python代码来展示X算法
2015/04/01 Python
python比较2个xml内容的方法
2015/05/11 Python
python字符串连接方法分析
2016/04/12 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
python线程池如何使用
2020/05/28 Python
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
Audible英国:有声读物,30天免费试用
2019/10/16 全球购物
有针对性的求职自荐信
2013/11/14 职场文书
小学课外阅读总结
2014/07/09 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
2014年银行个人工作总结
2014/12/05 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby
python中的random模块和相关函数详解
2022/04/22 Python