温馨提示×

CentOS PHP日志怎么配置

小樊
39
2026-08-04 06:11:50
栏目: 编程语言

CentOS 上配置 PHP 日志,主要取决于你使用的是 PHP-FPM 还是 Apache + mod_php。下面按常见场景详细说明。


一、PHP-FPM(最常见,CentOS 7/8/Stream 默认)

1️⃣ PHP-FPM 错误日志

配置文件位置

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

设置错误日志

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

设置日志级别

log_level = notice

可选值:

  • alert
  • error
  • warning
  • notice(默认)
  • debug

重启 PHP-FPM

systemctl restart php-fpm

2️⃣ PHP 脚本错误日志(php.ini)

编辑 php.ini(路径可能不同):

php -i | grep "Loaded Configuration File"

常见路径:

/etc/php.ini
/etc/php/8.x/fpm/php.ini

开启错误日志

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

创建日志目录

mkdir -p /var/log/php
chown -R apache:apache /var/log/php   # Apache
chown -R nginx:nginx /var/log/php     # Nginx

二、Apache + mod_php(较少见)

1️⃣ Apache 错误日志

PHP 错误会写入 Apache 日志:

/var/log/httpd/error_log

2️⃣ 单独 PHP 错误日志

同样修改 php.ini

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

重启 Apache:

systemctl restart httpd

三、Nginx + PHP-FPM(常见组合)

1️⃣ Nginx 日志

/var/log/nginx/error.log
/var/log/nginx/access.log

2️⃣ PHP 错误日志

重点:PHP 错误不会进 Nginx 日志

必须配置:

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

四、日志轮转(防止日志过大)

创建 logrotate 配置

vim /etc/logrotate.d/php

示例:

/var/log/php/*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    create 0640 apache apache
}

五、常见问题排查

❌ 日志不生成

检查:

ls -ld /var/log/php
ps aux | grep php-fpm

❌ 权限问题

chmod 755 /var/log/php
chown -R nginx:nginx /var/log/php

六、快速检查命令

php -i | grep error_log
php-fpm -t
systemctl status php-fpm

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

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ Web 服务(Apache / Nginx)
  • ✅ PHP 版本

我可以给你一份 完全针对你环境的配置示例

0