php教程,如何理解php.ini中错误日志相关的选项?【推荐】
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文从php.ini
配置文件的视角,来理解一下错误日志相关的选项。就是说没有程序编程干预的情况下,系统自动记录错误日志的方式。当然,各大php
框架都有自己的记录日志的方式。所以,这种系统自动记录的日志,对于极简的php
系统还是有些意义的。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。本文测试环境:win10
,nginx@1.15.11
,php@8.2.10-nts
。
php.ini在哪里
还是老生常谈,php.ini
文件在哪里。可以通过下面的命令,还查找其位置。
php --ini
参考文章:
500错误
网页不显示错误信息,显示500
错误。这种问题,最直接的方式就是:修改php.ini
里面的display_errors
为On
。
php.ini修改
“显示错误”是显示给使用者,“记录日志”是提供给代码维护者。两者的受众是不同的。所以,不必混为一谈。
无论php.ini
中是否开启了显示错误:
display_errors = On
display_startup_errors = On
或者
display_errors = Off
display_startup_errors = Off
本文关心的是:记录错误的日志文件,与是否显示错误给用户无关。
error_reporting = E_ALL
log_errors = On
error_log = php_errors.log
error_log_mode = 0644
log_errors_max_log = 1024
其中,
log_errors_max_log
选项,在php8
系列里面已经取消了,写上也没有啥效果的。1024
的意思,日志文件最大是1M
。(不是绝对的,有特例可以突破这个限制)。【这一条待续2个内容】error_log_mode
选项,是php8
里面新加的。是指的日志文件的权限问题,默认就是最安全的0644
。个人感觉也没有啥设置的必要性吧?- 错误信息可以不
display
,但是一定要reporting
。
error_log 选项一:不做设置
;error_log = php_errors.log
;error_log = syslog
不做设置的话,就会转到对应的配套软件(比如nginx
、apache
等)去处理。因为苏南大叔这里的测试环境是nginx
。那么,php
程序里面的错误信息,默认是存放到了nginx/logs/error.log
文件里面了。
error_log 选项二:日志实体文件
error_log = php_errors.log
error_log
文件,默认值是php_errors.log
。
- 该文件默认是被生成在网站的根目录下面的。【安全隐患】
- 也可以设置称为全路径,注意保证日志文件权限可写。
error_log = E:\php_errors.log
error_log 选项三:系统日志
error_log = syslog
设置成syslog
后,php
日志就会被写入到操作系统层面上的日志里面了。苏南大叔的测试环境是win10
,查看相关日志的方式是:我的电脑=>管理=>计算机管理=>事件查看器。
如果无法关闭“计算机管理”界面,可以参考:
相关文章
- https://newsn.net/say/php-ini-error.html
- https://newsn.net/say/whereis-php-ini.html
- https://www.php.net/manual/zh/errorfunc.configuration.php
结束语
这里仅仅是从php.ini
的视角来看待系统错误日志的使用方式。当然,大多数使用框架的情况下,因为自建日志体系的缘故。这些php.ini
里面的选项,也是没有作用的。
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。