在Ubuntu系統中,PHP-FPM日志的管理可以通過以下幾種技巧來實現:
/var/log/php-fpm.log
或 /var/log/php7.x-fpm.log
,其中 x
是PHP的版本號。使用 tail -f
命令實時查看日志文件的最后幾行,以便監控PHP-FPM的運行狀況。例如:
sudo tail -f /var/log/php-fpm.log
使用 grep
命令過濾特定類型的日志消息,如錯誤消息:
grep error /var/log/php-fpm.log
使用文本編輯器(如 nano
或 vi
)打開日志文件進行詳細分析。
使用 Logrotate
進行日志輪轉,以避免單個日志文件過大。首先,確保 Logrotate
已安裝:
sudo apt-get install logrotate
創建或編輯 Logrotate
配置文件,例如 /etc/logrotate.d/php-app
,并添加以下內容:
/path/to/your/php/app/logs/*.log {
daily rotate 7
compress
delaycompress
missingok
notifempty
create 0640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/php-fpm/php-fpm.sock ]; then
kill -USR2 $(cat /var/run/php-fpm/php-fpm.pid)
fi
endscript
}
測試配置并啟用自動輪轉:
sudo logrotate -d /etc/logrotate.d/php-app
sudo systemctl enable logrotate
sudo systemctl start logrotate
使用 truncate
命令清空日志文件,例如清空PHP-FPM的日志文件:
sudo truncate -s 0 /var/log/php-fpm.log
可以創建cron任務定期清理日志文件,例如每天凌晨1點清理Apache和Nginx的日志文件。
在PHP-FPM的配置文件(通常位于 /etc/php/{version}/fpm/pool.d/www.conf
)中,設置錯誤日志的路徑和級別。例如,將錯誤日志記錄到 /var/log/php-fpm/error.log
:
error_log = /var/log/php-fpm/error.log
取消注釋并設置 catch_workers_output
為 yes
以捕獲工作進程的輸出:
catch_workers_output = yes
保存更改并重啟PHP-FPM服務以應用更改:
sudo systemctl restart php{version}-fpm
通過以上技巧,可以有效地管理Ubuntu系統中的PHP-FPM日志,確保系統的穩定運行和問題的快速診斷。