LNMP下处理错误日志可从查看、配置、分析及维护等方面入手,具体如下:
-
查看日志文件
- Nginx错误日志:默认路径
/var/log/nginx/error.log,可通过tail -f实时查看。 - PHP错误日志:默认路径
/var/log/php-fpm.log或自定义路径(需在php.ini或php-fpm.conf中配置error_log)。 - MySQL错误日志:默认路径
/var/log/mysql/error.log,可通过SHOW VARIABLES LIKE 'log_error'确认。
- Nginx错误日志:默认路径
-
配置日志记录
- Nginx:在
nginx.conf中通过error_log指令设置路径和日志级别(如error记录错误,warn记录警告)。 - PHP:
- 全局配置:在
php.ini中设置log_errors=On和error_log路径,生产环境建议关闭display_errors。 - 脚本动态配置:通过
ini_set('error_log', '/path/to/log')临时指定日志文件。
- 全局配置:在
- MySQL:在
my.cnf中配置log-error路径,可通过FLUSH LOGS重置日志。
- Nginx:在
-
分析日志内容
- 使用
grep过滤关键错误,如grep -i 'error' /var/log/nginx/error.log。 - 结合工具分析,如
awk统计错误频率,或通过logrotate定期归档日志。
- 使用
-
处理异常情况
- 权限问题:确保日志目录可写(如
chown -R www-data:www-data /var/log/nginx)。 - 日志过大:通过
logrotate按时间或大小切割日志,避免占满磁盘。 - 生产环境优化:关闭
display_errors,仅记录关键错误到日志,避免敏感信息泄露。
- 权限问题:确保日志目录可写(如
-
自动化监控
- 使用
cron定时任务定期检查日志,如0 * * * * tail -n 100 /var/log/php-fpm.log > /tmp/php_errors.txt。 - 配合监控工具(如 Prometheus + Grafana)实时告警异常日志。
- 使用
参考来源:[1,3,4,5,6,7,8,9,10,11,12,14]