温馨提示×

Linux PHP日志切割方法

小樊
39
2025-10-08 18:04:20
栏目: 编程语言

在Linux系统中,使用logrotate工具可以方便地实现PHP日志的切割。以下是配置和使用logrotate进行PHP日志切割的方法:

  1. 确保logrotate已安装:

大多数Linux发行版默认已经安装了logrotate。如果没有安装,可以使用以下命令进行安装:

对于基于Debian的系统(如Ubuntu):

sudo apt-get update
sudo apt-get install logrotate

对于基于RPM的系统(如CentOS、Fedora):

sudo yum install logrotate
  1. 创建或编辑logrotate配置文件:

/etc/logrotate.d/目录下创建一个新的配置文件,例如php-fpm,或者编辑现有的配置文件。

sudo nano /etc/logrotate.d/php-fpm
  1. 添加以下内容到配置文件中:
/var/log/php-fpm/*.log {
    daily
    missingok
    rotate 7
    compress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        if [ -f /var/run/php-fpm/php-fpm.pid ]; then
            sudo kill -USR2 `cat /var/run/php-fpm/php-fpm.pid`
        fi
    endscript
}

这里的配置表示:

  • 每天切割日志
  • 如果日志文件丢失,不要报错
  • 保留7天的日志文件
  • 使用gzip压缩旧的日志文件
  • 如果日志文件为空,则不进行切割
  • 创建新的日志文件,权限为0640,属主为www-data,属组为adm
  • 在切割日志之后,发送USR2信号给PHP-FPM进程,通知它重新打开日志文件
  1. 保存并退出配置文件。

  2. 测试logrotate配置是否正确:

运行以下命令来测试logrotate配置是否正确:

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

如果一切正常,你应该会看到类似以下的输出:

reading config file /etc/logrotate.d/php-fpm
...
Processing: /var/log/php-fpm/*.log
...

现在,logrotate将按照配置文件中的设置自动切割PHP日志。如果你想要手动触发日志切割,可以运行以下命令:

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

0