ubuntu

ubuntu下php-fpm如何实现日志轮转

小樊
40
2025-02-19 19:00:35
栏目: 编程语言

在 Ubuntu 系统中,使用 PHP-FPM 时,可以通过配置 logrotate 工具来实现日志轮转。以下是配置步骤:

  1. 确保 logrotate 已经安装:

    在终端中运行以下命令来检查 logrotate 是否已经安装:

    logrotate --version
    

    如果没有安装,请运行以下命令来安装:

    sudo apt-get update
    sudo apt-get install logrotate
    
  2. 创建 logrotate 配置文件:

    /etc/logrotate.d/ 目录下创建一个新的配置文件,例如 php-fpm.conf

    sudo nano /etc/logrotate.d/php-fpm
    
  3. 编辑配置文件:

    在打开的配置文件中,添加以下内容:

    /var/log/php-fpm/*.log {
        daily
        missingok
        rotate 7
        compress
        notifempty
        create 0640 www-data adm
        sharedscripts
        postrotate
            if [ -f /run/php/php7.4-fpm.pid ]; then
                sudo kill -USR2 `cat /run/php/php7.4-fpm.pid`
            fi
        endscript
    }
    

    请注意,你需要根据你的 PHP-FPM 版本和安装路径来修改上述配置。例如,如果你使用的是 PHP 7.2,那么你需要将 /run/php/php7.4-fpm.pid 替换为 /run/php/php7.2-fpm.pid

    配置说明:

    • daily: 每天轮转日志。
    • missingok: 如果日志文件不存在,不会产生错误。
    • rotate 7: 保留 7 个轮转日志。
    • compress: 压缩轮转后的日志文件。
    • notifempty: 如果日志文件为空,不进行轮转。
    • create 0640 www-data adm: 创建新的日志文件,权限为 0640,属主为 www-data,属组为 adm。
    • sharedscripts: 如果有多个日志文件,只执行一次 postrotate 脚本。
    • postrotateendscript 之间的脚本会在轮转日志后执行。这里我们发送 USR2 信号给 PHP-FPM 主进程,通知它重新打开日志文件。
  4. 测试配置:

    保存并关闭配置文件后,运行以下命令来测试 logrotate 配置是否正确:

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

    如果没有错误信息,说明配置正确。

  5. 设置定时任务:

    logrotate 默认每天凌晨执行一次轮转任务。你可以编辑 /etc/cron.daily/logrotate 文件,修改其中的配置来调整轮转任务的时间。

现在,你已经成功配置了 Ubuntu 下 PHP-FPM 的日志轮转。

0
看了该问题的人还看了