修改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备份/还原MySQL数据库的代码
Jan 06 PHP
PHP中date()日期函数有关参数整理
Jul 19 PHP
在smarty中调用php内置函数的方法
Feb 07 PHP
php stripslashes和addslashes的区别
Feb 03 PHP
php中substr()函数参数说明及用法实例
Nov 15 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
Nov 19 PHP
php提取身份证号码中的生日日期以及验证是否为成年人的函数
Sep 29 PHP
详解php比较操作符的安全问题
Dec 03 PHP
php 基础函数
Feb 10 PHP
ThinkPHP框架实现数据增删改
May 07 PHP
Laravel 创建指定表 migrate的例子
Oct 09 PHP
thinkphp框架无限级栏目的排序功能实现方法示例
Mar 29 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
Laravel5.4简单实现app接口Api Token认证方法
2019/08/29 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
js 火狐下取本地路径实现思路
2013/04/02 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
node.js中的fs.open方法使用说明
2014/12/17 Javascript
js对象基础实例分析
2015/01/13 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
d3.js入门教程之数据绑定详解
2017/04/28 Javascript
详解vee-validate的使用个人小结
2017/06/07 Javascript
用Node提供静态文件服务的方法
2018/07/06 Javascript
Vue项目开发常见问题和解决方案总结
2020/09/11 Javascript
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
Python3.7中安装openCV库的方法
2018/07/11 Python
Python requests模块实例用法
2019/02/11 Python
详解python 爬取12306验证码
2019/05/10 Python
树莓派采用socket方式文件传输(python)
2019/06/22 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
Python实现中值滤波去噪方式
2019/12/18 Python
python实现飞机大战项目
2020/03/11 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
python装饰器代码深入讲解
2021/03/01 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
法国高保真音响和家庭影院商店:Son Video
2019/04/26 全球购物
开放系统互连参考模型
2016/06/29 面试题
八一建军节部队活动方案
2014/02/04 职场文书
六一儿童节标语
2014/10/08 职场文书
先进班集体申报材料
2014/12/26 职场文书
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android