温馨提示×

centos php日志怎样排查

小樊
44
2026-10-11 23:02:14
栏目: 编程语言

在 CentOS 上排查 PHP 日志,通常分 PHP 自身错误日志、Web 服务器(Nginx/Apache)日志、以及 应用层日志 三部分。下面按实战步骤说明。


一、先确认 PHP 错误日志在哪里

1. 查看 php.ini 配置

php --ini
# 或
php -i | grep "Loaded Configuration File"

常见路径:

  • /etc/php.ini
  • /etc/php.d/*.ini

查看关键配置:

grep -E "error_log|log_errors|display_errors" /etc/php.ini

示例:

log_errors = On
error_log = /var/log/php/php_errors.log
display_errors = Off

如果 error_log 没设置,PHP 会写入 Web 服务器错误日志。


二、常见 PHP 日志位置(CentOS)

1. PHP-FPM(最常见)

/var/log/php-fpm/error.log
/var/log/php-fpm/www-error.log

查看:

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

2. Nginx + PHP

Nginx 错误日志:

/var/log/nginx/error.log

访问日志:

/var/log/nginx/access.log

3. Apache + PHP

/var/log/httpd/error_log
/var/log/httpd/access_log

三、实时排查问题(最常用)

实时看错误

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

搜索关键字

grep -i "error" /var/log/php-fpm/www-error.log
grep -i "Fatal" /var/log/nginx/error.log

四、PHP 不写日志的常见原因

1. 目录不存在或权限不足

ls -ld /var/log/php

修复:

mkdir -p /var/log/php
chown -R www-data:www-data /var/log/php
# 或 php-fpm 用户(如 apache / nginx)

2. SELinux 限制(CentOS 常见)

查看是否拦截:

getenforce
ausearch -m avc -ts recent

临时测试:

setenforce 0

永久解决需配置 SELinux 策略或目录上下文。


五、开启详细调试(临时)

在 php.ini 或代码中:

display_errors = On
error_reporting = E_ALL

或在 PHP 文件顶部:

ini_set('display_errors', 1);
error_reporting(E_ALL);

六、应用框架日志(如 Laravel / ThinkPHP)

  • Laravel:storage/logs/laravel.log
  • ThinkPHP:runtime/log/

七、快速排查思路总结

  1. 先看 请求是否到达 PHP(Nginx/Apache 日志)
  2. 再看 PHP 是否报错(php-fpm / php error log)
  3. 最后看 业务日志
  4. 权限 / SELinux 是 CentOS 最常见坑

如果你能告诉我:

  • CentOS 版本
  • Nginx 还是 Apache
  • PHP 版本
  • 具体报错现象

我可以帮你精准定位。

0 踩