我回答的时候举了做项目的时候的例子,先缕一下思路。因为后台这一块,只要思路缕清了,在纸上写出来,接下来一步一步去 debug,不断 var_dump、print_r、echo,最后 exit () 一下,其实很好 debug 后来发现面试官想问的其实不是这个,而是错误日志,今天特意去搜了一下,研究了一个下午终于会一点点
首先开启错误日志,配置 php.ini
error_reporting = E_ALL ; 将会向 PHP 报告发生的每个错误,包括 ERROR、NOTICE、WARNING
等等
display_errors = Off ; 本地测试开启,项目上线要关闭,防止服务器重要信息泄露
log_errors = On ;
开启错误日志
log_errors_max_len = 1024 ; 设置每个日志项的最大长度
error_log =
/www/phpernote/error.log ; 指定产生的错误报告写入的日志文件位置
配置完之后重启服务器即可,参考了 php 的异常和处理文章的一小段代码,自己另外做了测试
<?php
set_error_handler('myErrorHandler');
function myErrorHandler($errno,$errmsg,$file,$line){
echo "<b>错误代码:</b>[{$errno}] {$errmsg} <br/>".PHP_EOL;
echo "<b>错误行号:</b>{$file}文件中的第 {$line} 行<br/>".PHP_EOL;
echo "<b>PHP版本:</b>".PHP_VERSION."(".PHP_OS.") <br/>".PHP_EOL;
$datetime = date('Y-m-d H:i:s',time());
error_log('时间:' . $datetime . '错误的信息:' . $errmsg . '错误文件所在位置:' .$_SERVER['SCRIPT_FILENAME']);
}
echo $test;
test();
echo 'good';
?>
下面是 error.log 输出的内容:
网页输出的内容: