在 CentOS 上优化 PHP 日志,通常可以从日志级别、日志切割、存储位置、性能影响、错误上报方式几个方面来做。下面按实用场景给你一套可落地方案。
编辑 php.ini(路径通常是 /etc/php.ini 或 /etc/php.d/ 下):
; 生产环境
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off
log_errors = On
error_log = /var/log/php/php_error.log
✅ 建议:
; 忽略提醒类
error_reporting = E_ERROR | E_WARNING | E_PARSE
log_errors_max_len = 1024
防止超长 SQL / 堆栈把磁盘写爆。
如果你用的是 PHP-FPM(CentOS 常见):
路径示例:
/etc/php-fpm.conf
/etc/php-fpm.d/www.conf
; 慢日志(性能优化神器)
slowlog = /var/log/php/php-fpm-slow.log
request_slowlog_timeout = 2s
; 访问日志(可选,不建议长期开)
access.log = /var/log/php/php-fpm-access.log
access.format = "%R - %u %t \"%m %r\" %s"
; 错误日志
error_log = /var/log/php/php-fpm-error.log
log_level = warning
✅ 建议:
新建:
/etc/logrotate.d/php
示例:
/var/log/php/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 nginx nginx
sharedscripts
postrotate
systemctl reload php-fpm > /dev/null 2>&1 || true
endscript
}
测试:
logrotate -d /etc/logrotate.d/php
避免 /var 被写满:
mkdir -p /var/log/php
chown nginx:nginx /var/log/php
access.loglog_level = error// composer require sentry/sentry
/var/log/php如果你愿意,可以告诉我:
我可以给你定制版配置。