【问题标题】:How to Configure logrotate of php5-fpm.log?如何配置 php5-fpm.log 的 logrotate?
【发布时间】:2014-10-08 05:28:01
【问题描述】:

我在运行 nginx 和 php5-fpm 的 ubuntu 12.04 上启用了 /etc/php5/fpm/php-fpm.conf 下的 error_log = /var/log/php5-fpm.log

但我注意到 php5-fpm.log 没有 logrotate。我试图了解从互联网上找到的一些配置,但我不愿意在我的生产服务器上进行测试。

这是我找到的一些配置:

/var/log/php5-fpm.log {
    rotate 12
    weekly
    missingok
    notifempty
    compress
    delaycompress
    postrotate
        invoke-rc.d php5-fpm reopen-logs > /dev/null
    endscript
}

这是配置的link。据我了解,我所需要的只是在/etc/logrotate.d/ 下创建一个名为php5-fpm 的文件,所以它看起来像/etc/logrotate.d/php5-fpm 和上面的代码。

我还从这个link 中找到了另一个示例,代码如下:

    /var/log/php5-fpm.log {
        daily
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
            [ ! -f /var/run/php5-fpm.pid ] || kill -USR1 `cat /var/run/php5-fpm.pid`
        endscript
    }

由于我是 logrotate 配置的新手,我想确保我将做的事情是正确的。

那么,这两种配置中哪一种是正确的呢?第一个还是第二个?我将只在/etc/logrotate.d/php5-fpm 创建一个文件并将代码放入其中是否正确?

对不起,如果这是一个新手问题,我只是找不到有关如何执行此操作的完整说明。

【问题讨论】:

    标签: linux ubuntu logging logrotate


    【解决方案1】:

    只是为了澄清通过 Google 来的其他人:

    1)

    invoke-rc.d php5-fpm reopen-logs > /dev/null
    

    这是您的发行版必须支持的内容。选项“reopen-logs”带有 PHP 源包提供的默认初始化脚本。所以你可能无法使用它。

    2)

    [ ! -f /var/run/php5-fpm.pid ] || kill -USR1 `cat /var/run/php5-fpm.pid`
    

    这是正确的选项,PHP-FPM 也正式支持,请参阅: https://github.com/php/php-src/blob/b7a7b1a624c97945c0aaa49d46ae996fc0bdb6bc/sapi/fpm/fpm/fpm_events.c#L94

    您将能够从源代码中看到,这个“信号”是为日志旋转额外制作的,应该优先于仅用于重新加载配置的“USR2”。

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 2015-07-24
      • 2019-11-08
      • 2014-12-16
      • 2012-12-18
      • 1970-01-01
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多