温馨提示×

centos php日志为何突然变大

小樊
44
2026-09-24 08:45:16
栏目: 编程语言

CentOS 上 PHP 日志突然变大,通常不是 PHP 本身“抽风”,而是某个异常被持续触发配置/环境变化导致。下面按最常见原因 → 排查方法 → 解决方式说明。


一、最常见原因(90% 情况)

1️⃣ PHP 报错被无限循环或高频触发

典型表现:

  • php-fpm.logerror_log 每秒增长几 MB
  • 内容大量重复(如 Notice / Warning / Fatal)

常见触发点:

  • 死循环里写了 error_log()
  • 异常未捕获,框架反复重试
  • 定时任务(cron)PHP 脚本出错

✅ 排查:

tail -n 100 /var/log/php-fpm/error.log

tail -n 100 /var/log/php_errors.log

✅ 解决:

  • 修复代码逻辑
  • 避免在生产环境打印 Notice/Warning

2️⃣ PHP 错误级别设置过低

如:

error_reporting = E_ALL
display_errors = On
log_errors = On

生产环境极易爆日志。

✅ 建议生产配置:

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
log_errors = On
display_errors = Off

3️⃣ php-fpm 进程异常(频繁重启)

表现:

  • php-fpm.log 大量:
    child exited with code 255
    
  • 请求量没变,但日志暴涨

✅ 原因:

  • 内存不足(OOM)
  • 脚本超时
  • 扩展不兼容

✅ 排查:

dmesg | grep php
free -h

4️⃣ 日志未轮转(logrotate 失效)

CentOS 默认有:

/etc/logrotate.d/php-fpm

但如果:

  • 手动改过日志路径
  • 文件权限错误
  • 服务未 reload

就会导致单文件无限增长

✅ 检查:

logrotate -d /etc/logrotate.d/php-fpm

5️⃣ 被攻击或爬虫疯狂请求

  • 大量 404 / 500
  • PHP 不断记录错误

✅ 排查:

grep "500" /var/log/nginx/access.log | wc -l

二、快速定位“哪个日志在涨”

du -sh /var/log/* | sort -h
lsof | grep php | grep log

三、临时止血方案(紧急)

# 清空日志(不要删文件)
: > /var/log/php-fpm/error.log

或限制大小(临时):

log_limit = 8192

四、如果你愿意,我可以直接帮你分析

你可以贴:

  1. 日志路径(php-fpm.log / error_log?)
  2. 日志前 20 行内容
  3. 是否用了 nginx / apache / php-fpm

我可以直接告诉你具体是哪一行代码或配置在作妖

0