PHP程序语法缺点导致
场景一:我们项目设置有报警监控(定时每隔10分钟访问一下网站的一个固定链接),曾经有段韶光,每天都会收到两三次报500缺点的邮件,但当自己再手动访问时却访问正常…()
这该当是最常见的缺点了,语法缺点也能很快复现,只要把报错信息暴露出来即可根据问题立马办理。
如果是在本地或测试环境,常日我们是这么处理的,在程序入口中设置输出报错信息即可:
//error_reporting设置该当报告的缺点,下面表示除了 E_NOTICE,报告其他所有缺点
error_reporting(E_ALL ^ E_NOTICE);
//输出错误
ini_set('display_errors', 1);
但在线上环境的话,由于用户都在用,不可能许可我们就那么赤裸裸的打印缺点,怎么办呢?可以在程序入口文件中设置将缺点输出到日志文件中,详细代码如下:
error_reporting(E_ALL ^ E_NOTICE);
//禁止把缺点输出到页面
ini_set('display_errors', 0);
//设置缺点信息输出到文件
ini_set('log_errors', 1);
//指定缺点日志文件名
$error_dir = '/logs/err/';
$error_file = $error_dir . date('Ymd').'.log';
//目录不存在就创建
if (!is_dir($error_dir)){
mkdir($error_dir, 0777, true);
}
//文件不存在就创建之
if(!file_exists($error_file)){
$fp = fopen($error_file, 'w+');
if($fp){
fclose($fp);
}
}
//设置缺点输出文件
ini_set(\"大众error_log\"大众, $error_file);
//程序正常实行逻辑......
刚才说的场景一问题,后来我们按照上面输出到log的办法输出才创造的,是由于mysql连接非常断开而程序连续实行(连接mysql时正常,但当调用详细查询方法时报错,记得彷佛是在利用方法mysqli_real_escape_string()的地方)导致的fatal级报错,终极才顺利修复了。
以上便是php调用自己的方法报错500的详细内容,更多请关注其它干系文章!
更多技巧请《转发 + 关注》哦!