温馨提示×

怎么清理CentOS PHP日志文件

小樊
46
2026-08-30 07:50:03
栏目: 编程语言

在 CentOS 上清理 PHP 日志文件,通常取决于你使用的 PHP 运行方式(PHP-FPM / Apache + mod_php) 以及 日志存储位置。下面按常见场景给你一份完整操作指南。


一、先确认 PHP 日志在哪

1️⃣ PHP-FPM(最常见,CentOS 7/8)

php-fpm -i | grep "error_log"

或查看配置文件:

grep -R "error_log" /etc/php-fpm.d/
grep -R "error_log" /etc/php.ini

常见路径:

/var/log/php-fpm/error.log
/var/log/php-fpm/www-error.log

2️⃣ Apache + mod_php

grep -R "error_log" /etc/httpd/conf.d/
grep -R "error_log" /etc/httpd/conf/httpd.conf

常见路径:

/var/log/httpd/error_log

3️⃣ Nginx + PHP-FPM

grep -R "error_log" /etc/nginx/

常见路径:

/var/log/nginx/error.log
/var/log/php-fpm/www-error.log

二、安全清理 PHP 日志(推荐方式)

✅ 方法 1:清空日志文件(不删除文件,最安全)

> /var/log/php-fpm/error.log

truncate -s 0 /var/log/php-fpm/error.log

⚠️ 不要直接 rm 日志文件,否则 PHP/服务可能继续写入已删除的 inode,日志仍占磁盘。


✅ 方法 2:只清理 N 天前的日志

find /var/log/php-fpm -name "*.log" -mtime +30 -exec rm -f {} \;

三、重启服务(清理后建议)

PHP-FPM

systemctl restart php-fpm

Apache

systemctl restart httpd

Nginx

systemctl restart nginx

四、限制 PHP 日志大小(防止再次爆满)

1️⃣ 修改 php.ini(推荐)

vi /etc/php.ini
log_errors = On
error_log = /var/log/php/error.log
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED

⚠️ 不建议长期记录 E_ALL


2️⃣ 配置日志轮转(logrotate,强烈推荐)

编辑轮转配置:

vi /etc/logrotate.d/php-fpm

示例:

/var/log/php-fpm/*.log {
    daily
    rotate 7
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
    postrotate
        systemctl reload php-fpm > /dev/null 2>&1 || true
    endscript
}

测试:

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

五、手动快速清理示例(常用)

# 清空 PHP-FPM 错误日志
> /var/log/php-fpm/error.log

# 清空 Nginx 错误日志
> /var/log/nginx/error.log

# 查看磁盘占用
df -h
du -sh /var/log/*

六、常见问题

❓ 清理后磁盘没释放?

lsof | grep deleted

重启占用日志的服务即可。


❓ 找不到 PHP 日志?

php -i | grep error_log

journalctl -u php-fpm

如果你愿意,可以把以下信息发我,我可以给你精确路径和命令

  • CentOS 版本(7 / 8 / Stream)
  • PHP 版本
  • Web 服务(Apache / Nginx)
  • 报错提示或磁盘占用截图

我可以直接帮你定制清理方案 ✅

0