PHP - 让运行时的错误信息不显示在页面上(将错误记录到日志文件中)
默认情况下,当 PHP 执行遇到错误时,会实时地将错误信息显示在页面上。
这个错误回显功能可以帮助我们在开发时快速地定位问题。但由于错误提示会暴露出许多敏感信息,从而为攻击者下一步攻击提供便利。所以在生产环境中,记得要关闭该功能,将错误信息屏蔽不显示。
1,Linux 服务器下的设置
(1)编辑 php.ini,将 log_errors 设置为 on:
log_errors = On
(2)保存后重启 apache 即可。
2,Windows 服务器下的设置
(1)同样是编辑 php.ini。只不过除了将 log_errors 设置为 on 外,还需要定义 error_log 的路径及文件名。这样错误日志就会保存到指定的文件中。
log_errors = On error_log = d:/php_log/errors.log
特别要注意的是,日志保存目录需要授予 php 标识用户的修改权限,否则日志文件无法生成。
(2)保存后重启服务器即可。
附:手动将错误信息记录到日志文件中
经过上面的配置后,除了运行时产生的所有错误会自动记录到日志文件中外,我们也可以在代码中使用 error_log() 方法主动将一些信息写到日志文件中,方便定位问题。
<? error_log("Mysql数据库不可用!", 0); //将错误消息写入到操作系统日志中 ?>