在CentOS上配置PHP日志级别,说起来其实就两个大头:PHP-FPM和Web服务器。日志级别这东西,说白了就是给系统划定一个“报警”的阈值——你希望它记录到什么程度的信息,是只记错误,还是连警告、调试信息都一股脑写进去?搞定它,分两步走。

1. PHP-FPM日志级别设置
PHP-FPM的日志级别配置,核心文件就是 /etc/php-fpm.d/www.conf 或者 /etc/php-fpm.conf。打开它,你主要关注两个配置项:error_log 和 catch_workers_output。
步骤很简单:
- 打开配置文件:
sudo vi /etc/php-fpm.d/www.conf - 找到
error_log和catch_workers_output这两个配置项。 - 设置日志级别。比如,你想把错误日志级别设为
error,可以这样:error_log = /var/log/php-fpm/error.log catch_workers_output = yes - 重启PHP-FPM服务:
sudo systemctl restart php-fpm
这里有个小细节:catch_workers_output 设为 yes 的话,工作进程的异常输出也会被捕获到主进程的错误日志里,对排查问题很有帮助。
2. Web服务器日志级别设置
Web服务器这块,Apache和Nginx的配置方式略有不同,但逻辑是相通的。
Apache
Apache的日志级别配置在 /etc/httpd/conf/httpd.conf 或 /etc/apache2/apache2.conf 里。核心配置项是 LogLevel。
操作起来也不复杂:
- 打开配置文件:
sudo vi /etc/httpd/conf/httpd.conf - 找到
LogLevel配置项。 - 设置级别,比如
warn:LogLevel warn - 重启Apache服务:
sudo systemctl restart httpd
Apache的日志级别从 emerg 到 debug 共8级,warn 是个不错的折中——既能记录关键问题,又不会太啰嗦。
Nginx
Nginx的日志配置在 /etc/nginx/nginx.conf,主要关注 error_log 和 access_log。
步骤:
- 打开配置文件:
sudo vi /etc/nginx/nginx.conf - 找到
error_log和access_log配置项。 - 设置错误日志级别,比如
error:error_log /var/log/nginx/error.log error; access_log /var/log/nginx/access.log main; - 重启Nginx服务:
sudo systemctl restart nginx
注意,Nginx的 error_log 后面直接跟日志文件路径和级别,而 access_log 主要控制访问日志的格式和路径,不涉及级别。
总结
日志级别调对了,排查问题事半功倍;调错了,要么被海量信息淹没,要么错过关键线索。从实际运维的角度来看,生产环境一般建议把PHP-FPM和Nginx的 error_log 都设为 error,Apache的 LogLevel 设为 warn,这样平衡了信息量和可读性。当然,调试阶段临时调高到 debug 也是常见的操作——但别忘了用完恢复回去。