首页 > 资讯列表 > 编程/数据库 >> PHP

php.ini 错误日志设置方法

PHP 2014-12-01 06:14:42 转载来源: 网络整理/侵权必删

本文为大家讲解的是生产环境下如何配置php.ini 错误日志的方法,生产环境下不能直接输出错误需要让日志全部输出文件里,感兴趣的同学参考下。 对于PHP开发人员来说,一旦某个产品投入使用,那么第一件事就是应该将php.ini中display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击

本文为大家讲解的是生产环境下如何配置php.ini 错误日志方法,生产环境下不能直接输出错误需要让日志全部输出文件里,感兴趣的同学参考下。

对于PHP开发人员来说,一旦某个产品投入使用,那么第一件事就是应该将php.ini中display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。

某个产品投入使用后,难免会有错误信息,那么如何记录这些对开发人员非常有用的信息呢?

将PHP的log_errors开启即可,默认是记录到WEB服务器的日志文件里,比如Apache的error.log文件。

当然也可以记录错误日志到指定的文件中。

# vim /etc/php.inidisplay_errors = Off
log_errors = On
error_log = /var/log/php-error.log   //此处填文件目录
另外也可以设定error_log = syslog,使这些错误信息记录到操作系统的日志里。

;具体参考php.ini的参考
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
error_reporting = E_ALL
display_errors = On
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
report_memleaks = On
track_errors = On
;注意错误不要记录到文件,不然运行的时候会看不到错误,难以调试
;error_log = c:php_error.log
;error_log = syslog

下面是一个查看日志文件的脚本

主配置文件config.php

<?php
ini_set("error_reprorting", "E_ALL");
ini_set("display_errors", "Off");
ini_set("log_errors", "On");
ini_set("error_log", "/opt/lampp/htdocs/error_log.log");   //此路径自行配置
 
 
查看日志文件error_log.php
<?php
require_once("config.php");
set_time_limit(0);
header("Content-type:text/html;charset=utf-8");
if($_SERVER['REMOTE_ADDR'] != '127.0.0.1') {    //对除开发人员ip地址外的其他地址屏蔽可查看本日志
header('HTTP 1.1/404');
}
$line = 40;
if(function_exists('ini_get')) {
$error_log = ini_get('error_log');
} else {
$error_log = "/var/www/log/php_error.log";
}
$starttime = time();
readlog($error_log, $line, $starttime);
 
function readlog($file, $linefromlast, $starttime){
$i = 0;
$line = 0;
$fp = @fopen($file, "r");
while(stream_get_line($fp, 8192, "n")) {
  $line++;
}
fseek($fp, 0);          //指针置0
if($fp) {
   while(!feof($fp)) {
$i++;
$buffer = fgets($fp, 8192);
if($i <= ($line - $linefromlast)) {
continue;
}
echo $buffer . "<br />";
   }
   fclose($fp);
}
$endtime = time();
$havetime = $endtime - $starttime;
echo "在" . $line . "条记录中找出最后" . $linefromlast . "条记录耗时" . $havetime . "秒";
}
?>

标签: php.ini 错误 日志 设置 方法


声明:本文内容来源自网络,文字、图片等素材版权属于原作者,平台转载素材出于传递更多信息,文章内容仅供参考与学习,切勿作为商业目的使用。如果侵害了您的合法权益,请您及时与我们联系,我们会在第一时间进行处理!我们尊重版权,也致力于保护版权,站搜网感谢您的分享!

站长搜索

http://www.adminso.com

Copyright @ 2007~2024 All Rights Reserved.

Powered By 站长搜索

打开手机扫描上面的二维码打开手机版


使用手机软件扫描微信二维码

关注我们可获取更多热点资讯

站长搜索目录系统技术支持