溫馨提示×

ubuntu下php-fpm如何實現日志輪轉

小樊
51
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
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女