修改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的历史和优缺点
Oct 09 PHP
php+mysql实现无限级分类 | 树型显示分类关系
Nov 19 PHP
PHP简洁函数(PHP简单明了函数语法)
Jun 10 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
php根据某字段对多维数组进行排序的方法
Mar 07 PHP
php使用pdo连接sqlite3的配置示例
May 27 PHP
PHP实现数组array转换成xml的方法
Jul 19 PHP
php fread读取文件注意事项
Sep 24 PHP
php上传excel表格并获取数据
Apr 27 PHP
php-msf源码详解
Dec 25 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 PHP
详解PHP的抽象类和抽象方法以及接口总结
Mar 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
PHP 变量的定义方法
2010/01/26 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
php模仿asp Application对象在线人数统计实现方法
2015/01/04 PHP
使用PHP生成PDF方法详解
2015/01/23 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
非常实用的php验证码类
2016/05/15 PHP
Thinkphp实现站点静态化的方法详解
2017/03/21 PHP
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
Bootstrap对话框使用实例讲解
2016/09/24 Javascript
bootstrap轮播图示例代码分享
2017/05/17 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
axios 封装上传文件的请求方法
2018/09/26 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
vue实现搜索功能
2019/05/28 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
[48:37]EG vs OG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python实现字典的key和values的交换
2015/08/04 Python
Python循环语句中else的用法总结
2016/09/11 Python
numpy中矩阵合并的实例
2018/06/15 Python
对python:print打印时加u的含义详解
2018/12/15 Python
PyTorch中的Variable变量详解
2020/01/07 Python
Python类继承和多态原理解析
2020/02/05 Python
日本订房网站,预订日本星级酒店/温泉旅馆:Relux(支持中文)
2020/01/03 全球购物
10的分与合教学反思
2014/04/30 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
决心书格式范文
2015/09/23 职场文书
python Tkinter的简单入门教程
2021/04/11 Python