一、CentOS PHP日志类型及位置 在CentOS系统中,PHP日志主要分为三类,路径取决于Web服务器配置:
/var/log/php-fpm/error.log(PHP-FPM)、/var/log/httpd/error_log(Apache)或/var/log/nginx/error.log(Nginx)。/var/log/php-fpm/access.log(需在php-fpm.conf中开启access.log)。/var/log/httpd/access_log,Nginx的路径为/var/log/nginx/access.log,记录所有HTTP请求(包括非PHP资源)。二、PHP错误日志格式说明
PHP错误日志的格式由php.ini中的log_errors_format参数控制,默认格式通常包含以下占位符(以php.ini配置为例):
log_errors_format = "[%datetime%] %Type%: %Message% in %Script% on line %Line%"
YYYY-MM-DD HH:MM:SS(如2023-10-01 14:23:45)。PHP Fatal error(致命错误)、PHP Warning(警告)、PHP Notice(通知)。/var/www/html/script.php)。5)。示例日志:
[2023-10-01 14:23:45] PHP Fatal error: Call to undefined function test_function() in /var/www/html/script.php on line 5
该日志表明:在script.php文件的第5行,调用了未定义的函数test_function(),导致脚本终止执行。
三、PHP-FPM访问日志格式说明
PHP-FPM的访问日志用于记录用户对PHP脚本的HTTP请求,格式由php-fpm.conf中的access.format参数控制,默认格式通常包含以下占位符(以php-fpm.conf配置为例):
access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%"
127.0.0.1)。-)。[DD/MMM/YYYY:HH:MM:SS +TZ](如[21/Jul/2021:12:34:56 +0800])。GET、POST)。/index.php)。200表示成功,404表示未找到,500表示服务器错误)。/var/www/html/index.php)。123表示123毫秒)。1024表示1MB)。10.5表示10.5%)。示例日志:
127.0.0.1 - - [21/Jul/2021:12:34:56 +0800] "GET /index.php HTTP/1.1" 200 /var/www/html/index.php 123 1024 5.2%
该日志表明:客户端127.0.0.1通过GET方法请求了/index.php,服务器返回200状态码,脚本路径为/var/www/html/index.php,处理时间为123毫秒,消耗内存1MB,CPU使用率为5.2%。
四、常见日志占位符汇总
| 占位符 | 含义 | 示例值 |
|---|---|---|
%datetime% |
错误发生时间 | 2023-10-01 14:23:45 |
%Type% |
错误类型 | PHP Fatal error |
%Message% |
错误描述 | Call to undefined function |
%Script% |
错误脚本路径 | /var/www/html/script.php |
%Line% |
错误行号 | 5 |
%R |
客户端IP | 127.0.0.1 |
%t |
请求时间 | [21/Jul/2021:12:34:56 +0800] |
%m |
HTTP方法 | GET |
%s |
HTTP状态码 | 200 |
%f |
处理脚本路径 | /var/www/html/index.php |
%{mili}d |
处理时间(毫秒) | 123 |
%{kilo}M |
内存消耗(KB) | 1024 |
五、日志查看与分析技巧
tail -f /path/to/logfile(如tail -f /var/log/php-fpm/error.log),实时监控新产生的日志。grep命令(如grep 'PHP Fatal error' /var/log/php_errors.log),快速查找致命错误。awk命令(如awk '/2025-04-05/{print $0}' access.log),筛选某一天的访问日志。