PHP-FPM 在 Linux 下的日志管理方法
一 日志位置与实时查看
sudo tail -f /var/log/php-fpm/error.log。在 Ubuntu/Debian 上常见日志目录为 /var/log/php-fpm/;在 CentOS/RHEL 上常见为 /var/log/php-fpm/(具体以实际配置为准)。sudo journalctl -u php-fpm -f 实时查看服务日志。二 日志轮转与保留策略
/var/log/php-fpm/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
sharedscripts
postrotate
if [ -f /var/run/php-fpm/php-fpm.pid ]; then
kill -USR2 `cat /var/run/php-fpm/php-fpm.pid` 2>/dev/null || true
fi
endscript
}
sharedscripts 确保同组内多个日志文件仅执行一次 postrotate。create 0640 root adm 设置新日志权限与属主属组,需与系统实际用户组匹配(见下一节)。sudo logrotate -f /etc/logrotate.d/php-fpmcat /var/lib/logrotate/status三 日志级别与输出目标配置
error_log = /var/log/php-fpm/error.logaccess.log = /var/log/php-fpm/access.logcatch_workers_output = yesphp_admin_value[error_log]、php_admin_flag[log_errors] 等指令在池级强制生效(避免被 php.ini 覆盖)。error_reporting = E_ALL & ~E_NOTICElog_errors = Onerror_log = /var/log/php_errors.log(如希望与应用错误分离)。sudo systemctl reload php-fpm(或 restart)。四 权限与路径适配
create 建议使用 www-data adm。create 建议使用 root adm 或与运行用户匹配的组。postrotate 脚本。五 监控分析与清理
tail -f /var/log/php-fpm/*.log、journalctl -u php-fpm -fgrep -i "error\|warning" /var/log/php-fpm/error.logrotate 与 compress 为主,必要时可辅以定时清理旧归档(如 find ... -mtime +N -delete),避免重复清理策略。