修改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设计模式 State (状态模式)
Jun 26 PHP
基于MySQL分区性能的详细介绍
May 02 PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
Aug 28 PHP
php单例模式实现方法分析
Mar 14 PHP
8个必备的PHP功能开发
Oct 02 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
总结PHP如何获取当前主机、域名、网址、路径、端口和参数等
Sep 09 PHP
PHP定时任务获取微信access_token的方法
Oct 10 PHP
PHP静态延迟绑定和普通静态效率的对比
Oct 20 PHP
php和asp语法上的区别总结
May 12 PHP
调试php程序的简单步骤
Oct 04 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 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页面间传递参数实例代码
2008/06/05 PHP
PHP 进程锁定问题分析研究
2009/11/24 PHP
php开发环境配置记录
2011/01/14 PHP
php使用curl模拟登录后采集页面的例子
2013/11/04 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
PHP面向对象程序设计实例分析
2016/01/26 PHP
PHP检测数据类型的几种方法(总结)
2017/03/04 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
PHP微信网页授权的配置文件操作分析
2019/05/29 PHP
在laravel中实现事务回滚的方法
2019/10/10 PHP
php+laravel依赖注入知识点总结
2019/11/04 PHP
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
浅谈Javascript数组索引
2015/07/29 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
Node.js复制文件的方法示例
2016/12/29 Javascript
canvas实现爱心和彩虹雨效果
2017/03/09 Javascript
解决vue单页面多个组件嵌套监听浏览器窗口变化问题
2020/07/30 Javascript
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
Python中正则表达式的用法实例汇总
2014/08/18 Python
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
Python正则表达式指南 推荐
2018/10/09 Python
Python 面试中 8 个必考问题
2018/11/16 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
2020/04/28 Python
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
10条PHP编程习惯
2014/05/26 面试题
MySQL之DML语言
2021/04/05 MySQL
Python中time标准库的使用教程
2022/04/13 Python