温馨提示×

CentOS怎样配置PHP日志

小樊
49
2026-07-19 11:18:30
栏目: 编程语言

在 CentOS 上配置 PHP 日志,主要涉及 PHP-FPMApache/Nginx + PHP 两种常见场景。下面按常见情况详细说明。


一、确认 PHP 运行方式

先确认你使用的是哪种方式:

php -v
ps -ef | grep php

常见情况:

  • PHP-FPM(推荐,Nginx 常用)
  • mod_php(Apache 常用)

二、PHP 日志相关配置文件

1️⃣ php.ini(核心配置)

路径通常为:

/etc/php.ini
# 或
/etc/php/7.x/cli/php.ini
/etc/php/7.x/fpm/php.ini

关键配置项:

; 是否显示错误(生产环境建议 Off)
display_errors = Off

; 是否记录错误
log_errors = On

; 错误日志路径
error_log = /var/log/php/php_error.log

; 错误报告级别
error_reporting = E_ALL

✅ 生产环境推荐:

display_errors = Off
log_errors = On
error_reporting = E_ALL & ~E_NOTICE

三、PHP-FPM 日志配置(最常见)

1️⃣ PHP-FPM 主配置

路径示例:

/etc/php-fpm.conf
/etc/php-fpm.d/www.conf

错误日志

error_log = /var/log/php-fpm/error.log

慢日志(可选)

request_slowlog_timeout = 5s
slowlog = /var/log/php-fpm/slow.log

2️⃣ 创建日志目录并设置权限

mkdir -p /var/log/php
mkdir -p /var/log/php-fpm

chown -R apache:apache /var/log/php
# 或 nginx
chown -R nginx:nginx /var/log/php
chown -R root:root /var/log/php-fpm

3️⃣ 重启 PHP-FPM

systemctl restart php-fpm

四、Apache + PHP(mod_php)

1️⃣ php.ini 配置同上

log_errors = On
error_log = /var/log/php/php_error.log

2️⃣ Apache 错误日志

PHP 错误也可能写入:

/var/log/httpd/error_log

3️⃣ 重启 Apache

systemctl restart httpd

五、Nginx + PHP-FPM

Nginx 本身不处理 PHP 日志

PHP 错误由 php-fpm 输出,Nginx 只记录访问和 fastcgi 错误:

/var/log/nginx/error.log

六、验证 PHP 日志是否生效

创建测试文件

<?php
error_log("This is a test PHP error log");
undefined_function();

访问该 PHP 页面,然后查看:

tail -f /var/log/php/php_error.log

或:

tail -f /var/log/php-fpm/error.log

七、SELinux 注意事项(容易踩坑)

若日志写不进去:

setenforce 0

如果这样能写,说明是 SELinux 问题:

semanage fcontext -a -t httpd_log_t "/var/log/php(/.*)?"
restorecon -Rv /var/log/php

八、推荐生产环境配置(总结)

display_errors = Off
log_errors = On
error_log = /var/log/php/php_error.log
error_reporting = E_ALL & ~E_NOTICE

如果你愿意,可以告诉我:

  • ✅ CentOS 版本(7/8/Stream)
  • ✅ PHP 版本
  • ✅ Nginx / Apache
  • ✅ 是 CLI、Web 还是 Cron 任务日志

我可以给你精确的一套配置方案

0