PHP-FPM 在 Linux 中的日志管理
一 日志类型与默认路径
二 查看与实时监控
sudo tail -f /var/log/php-fpm/error.logsudo tail -f /var/log/php-fpm/access.loggrep error /var/log/php-fpm/error.log、grep warning /var/log/php-fpm/error.log三 配置日志输出与级别
access.log = /var/log/php-fpm/access.logerror_log = /var/log/php-fpm/error.logcatch_workers_output = yesphp_admin_flag[log_errors] = onphp_admin_value[error_log] = /var/log/php-fpm/error.loglog_errors = Onerror_log = /var/log/php_errors.logsudo systemctl restart php-fpm(Nginx/Apache 配合重启视环境而定)。四 日志轮转与归档
/var/log/php-fpm/*.log {
daily
missingok
rotate 7
compress
notifempty
create 640 www-data adm
sharedscripts
postrotate
if [ -f /var/run/php-fpm/php-fpm.pid ]; then
kill -USR2 `cat /var/run/php-fpm/php-fpm.pid`
fi
endscript
}
/var/log/php-fpm/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 0640 root adm
sharedscripts
postrotate
kill -SIGUSR1 `cat /var/run/php-fpm/php-fpm.pid 2>/dev/null` 2>/dev/null || :
endscript
}
daily:按天轮转;rotate 7:保留 7 份归档;compress/delaycompress:压缩旧日志;create:轮转后创建新文件并设定权限与属主;sharedscripts:所有日志轮转后仅执行一次 postrotate;postrotate:向 PHP-FPM 主进程发送信号,通知其重新打开日志文件,确保写入不中断。sudo logrotate -f /etc/logrotate.d/php-fpm五 维护与优化建议
0 0 * * * find /var/log/php-fpm -type f -name "*.gz" -mtime +30 -deletetail 观察新日志是否正常写入,并核验归档文件是否按策略生成。