CentOS PHP日志管理最佳实践
一 基础配置与日志定位
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT(按需要保留调试信息)display_errors = Off(生产务必关闭,避免信息泄露)log_errors = Onerror_log = /var/log/php_errors.logphp_admin_flag[log_errors] = onphp_admin_value[error_log] = /var/log/php-fpm/error.logaccess.log = /var/log/php-fpm/access.log(按需开启,便于审计与性能分析)catch_workers_output = yes(便于捕获子进程输出)tail -f /var/log/php-fpm.log、tail -f /var/log/php_errors.log。二 日志轮转与保留策略
/var/log/php_errors.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root adm
}
/var/log/php-fpm/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
postrotate
/usr/sbin/php-fpm -k >/dev/null 2>&1 || true
endscript
}
logrotate -f /etc/logrotate.d/php-fpm;如 FPM 使用 syslog 或 journald,可省略 postrotate。ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/error_log.%Y-%m-%d 86400"access_log /var/log/nginx/access.log main buffer=32k flush=300s;(配合 logrotate 管理)三 安全与性能配置
buffer=32k flush=300s),降低 I/O 抖动;四 监控告警与集中化
五 排错与维护清单
tail -f /var/log/php-fpm.log、tail -f /var/log/php_errors.log;logrotate -f /etc/logrotate.d/php-fpm;find ... -mtime +N -delete 做兜底);