在 CentOS 上排查 PHP 日志,一般分 PHP 本身错误日志、Web 服务器(Nginx/Apache)日志、以及 应用框架日志 三类。下面按实战流程讲。
php --ini
或
php -i | grep php.ini
常见路径:
/etc/php.ini/etc/php.d/*.ini查看关键配置:
grep -E "log_errors|error_log|display_errors" /etc/php.ini
示例:
log_errors = On
error_log = /var/log/php/php_errors.log
display_errors = Off
如果没有 error_log,PHP 会写到:
/var/log/httpd/error_logphp-fpm -t
通常:
/etc/php-fpm.conf
/etc/php-fpm.d/www.conf
查看:
grep -E "error_log|slowlog|catch_workers_output" /etc/php-fpm.d/www.conf
常见日志位置:
error_log = /var/log/php-fpm/error.log
slowlog = /var/log/php-fpm/slow.log
catch_workers_output = yes
tail -f /var/log/php-fpm/error.log
tail -f /var/log/nginx/error.log
tail -f /var/log/nginx/access.log
tail -f /var/log/httpd/error_log
tail -f /var/log/httpd/access_log
tail -100 /var/log/php-fpm/error.log
tail -100 /var/log/nginx/error.log
重点看:
PHP Fatal errorAllowed memory sizeTimeout开启 slowlog:
slowlog = /var/log/php-fpm/slow.log
request_slowlog_timeout = 2s
查看:
tail -f /var/log/php-fpm/slow.log
ls -l /var/log/php-fpm/
确保 php-fpm 用户(如 www-data / nginx / apache)可写。
在 php.ini:
display_errors = On
error_reporting = E_ALL
或代码里:
error_reporting(E_ALL);
ini_set('display_errors', 1);
# PHP 配置
php -i | grep error
# PHP-FPM 日志
tail -f /var/log/php-fpm/error.log
# Nginx
tail -f /var/log/nginx/error.log
# Apache
tail -f /var/log/httpd/error_log
如果你能告诉我:
我可以给你 更精确的日志路径和示例。