Nginx软件会把自身运行的故障信息及用户访问的日志信息记录到指定的日志文件里。包括 PHP 的报错信息,方便查错,例如:
2018/11/26 09:59:17 [error] 11641#0: *38857054 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught UnexpectedValueException: The stream or file "/mnt/web/.../logs/2018-11-26.log" could not be opened: failed to open stream: Permission denied in /mnt/..../Monolog/Handler/StreamHandler.php:107
可以不配置 nginx 的 access_log 必须配置好 error_log。
Nginx错误日志信息介绍
Nginx的错误信息是调试Nginx服务的重要手段,属于核心功能模块(ngx_core_module)的参数,该参数的名字为 error_log,可以放在Main区块中全局配置,也可以放在不同的虚拟主机中单独记录虚拟主机的错误信息
error_log的默认值:
#error_log logs/error.log error;
error_log的语法格式及参数语法说明如下:
error_log
关键字 日志文件 错误日志级别
关键字:其中关键字 error_log 不能改变
日志文件:可以指定任意存放日志的目录
错误日志级别:常见的错误日志级别有[debug | info | notice | warn | error | crit | alert | emerg],级别越高记录的信息越少。
生产场景一般是 warn | error | crit 这三个级别之一
注意:不要配置info等级较低的级别,会带来大量的磁盘I/O消耗。
error_log 参数的标签段位置:main, http, server, location
参考资料:http://nginx.org/en/docs/ngx_core_module.html#error_log
Nginx配置错误日志过程介绍
(1)插入error_log语句
vi conf/vhost/www.abc.com.conf
#vi编辑虚拟主机配置文件
文件内容:
server {
access_log /data/log/www;
listen 80;
server_name abc.com www.abc.com;
location / {
root /data/www/www;
index index.html index.htm;
}
error_log logs/error_www.abc.com.log error;
#新增内容↑
}
(2)重启 Nginx 服务 或 重新加载配置
nginx restart
nginx reload
(3)查看错误日志文件
ll logs/error_www.abc.com.log
-rw-r--r-- 1 root root 2305 Jun 13 18:25 logs/error_www.abc.com.log
查看是否生产该文件,生成该文件则配置成功。
最后要切割日志,防止日志太大,也弄不清楚是哪天的,增加分析难度:
http://www.phpriji.cn/blog/detail/20181126134636fqzbnz.html
参考资料
https://www.cnblogs.com/czlun/articles/7010601.html
http://www.phpriji.cn/blog/detail/20181126134636fqzbnz.html