在Ubuntu系統中,PHP日志輪轉通常是通過logrotate
工具來實現的。logrotate
是一個用于管理日志文件的實用程序,它可以自動壓縮、刪除和郵件通知日志文件。要配置PHP日志輪轉,請按照以下步驟操作:
確保已安裝logrotate
。在大多數Ubuntu版本中,logrotate
已經預裝。如果沒有安裝,可以使用以下命令安裝:
sudo apt-get update
sudo apt-get install logrotate
創建一個新的logrotate
配置文件。在/etc/logrotate.d/
目錄下創建一個新文件,例如php-fpm
:
sudo nano /etc/logrotate.d/php-fpm
將以下內容粘貼到新創建的配置文件中,然后根據需要進行修改:
/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
}
這個配置文件的解釋如下:
/var/log/php-fpm/*.log
:指定要輪轉的日志文件路徑。daily
:每天輪轉一次日志文件。missingok
:如果日志文件不存在,不會產生錯誤。rotate 7
:保留7個輪轉后的日志文件。compress
:壓縮輪轉后的日志文件。notifempty
:如果日志文件為空,則不進行輪轉。create 0640 www-data adm
:創建新的日志文件,權限為0640,屬主為www-data,屬組為adm。sharedscripts
:如果有多個日志文件,只執行一次postrotate
腳本。postrotate
:輪轉后執行的腳本。這里我們向PHP-FPM發送USR2信號,通知它重新打開日志文件。保存并關閉配置文件。
測試logrotate
配置是否正確。運行以下命令:
sudo logrotate -f /etc/logrotate.d/php-fpm
如果沒有錯誤消息,說明配置正確。
現在,logrotate
將按照配置文件中的設置自動輪轉PHP日志文件。如果你想要立即輪轉日志文件,可以再次運行sudo logrotate -f /etc/logrotate.d/php-fpm
命令。