发布于2026-07-13 阅读(0)
扫一扫,手机访问

首先,得搞清楚你的 PHP 环境到底用的是哪种处理方式——是 PHP-FPM 还是 Apache 的 mod_php?不同处理程序,日志文件的存放路径可完全不一样。
下面这张表,基本涵盖了 CentOS 上常见部署场景的日志路径,建议直接收藏。
| 组件/场景 | 日志类型 | 典型路径 | 说明 |
|---|---|---|---|
| PHP-FPM | 错误日志 | /var/log/php-fpm/error.log | 运行时错误、警告 |
| PHP-FPM | 访问日志 | /var/log/php-fpm/access.log | 请求记录(若启用) |
| PHP-FPM | 慢执行日志 | 由 slowlog 配置项指定 | 执行时间超过阈值的脚本 |
| Apache + mod_php | 错误日志 | /var/log/httpd/error_log | PHP 错误通常写入此处 |
| Apache + mod_php | 访问日志 | /var/log/httpd/access_log | HTTP 请求记录 |
| Nginx + PHP-FPM | 错误日志 | /var/log/nginx/error.log | 与上游 PHP-FPM 交互错误 |
| Nginx + PHP-FPM | 访问日志 | /var/log/nginx/access.log | HTTP 请求记录 |
另外,如果是 systemd 管理的服务,直接用 journalctl -u php-fpm 或 journalctl -u httpd 也能捞到日志。以上路径和方式,在 CentOS 常见部署下基本都能对上。
找到日志文件之后,怎么快速从海量信息里揪出想看的?下面这几个命令套餐,可以直接用。
tail -f /var/log/php-fpm/error.log | grep -i "error\|fatal\|warning"tail -f /var/log/httpd/error_log | grep -i "php"tail -f /var/log/nginx/error.log | grep -i "php\|upstream"awk '/2025-11-29 10:00:00/,/2025-11-29 11:00:00/' /var/log/php-fpm/error.loggrep -C 5 "keyword" /var/log/httpd/error_loggrep '192.168.1.100' /var/log/nginx/access.loggrep '/api/login' /var/log/nginx/access.log | awk '$9 >= 500'awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10grep -i "error" /var/log/php-fpm/error.log | cut -d' ' -f1-2 | uniq -c以上命令可以自由组合管道,多条件筛选就是几行的事。
实战里遇到具体问题,直接复制下面的命令就好。
grep -E "PHP (Fatal|Parse) error" /var/log/php-fpm/error.log -A2 -B2awk '$4 > 5 {print}' /path/to/php-fpm.slow.loggrep '/checkout.php' /var/log/nginx/access.log | awk '{print $1,$7,$9}' 和 grep -i "checkout.php" /var/log/php-fpm/error.log 联合排查awk '{s[$9]++; total++;} END {for (k in s) printf "%s: %d (%.2f%%)\n", k, s[k], s[k]/total*100}' /var/log/nginx/access.logtail -f /var/log/nginx/access.log | grep --line-buffered '/api/pay' | awk '$9 >= 400 {print "\033[31m" $0 "\033[0m"}'grep 'login' /var/log/php-fpm/access.log | awk '{print $1,$2,$3,$6}'上述命令覆盖了错误、慢请求、访问异常、统计等常见场景,拿去就能用。
光会命令不够,得先保证日志确实被写下来了。以下配置一步不能少。
display_errors = Off)
error_reporting = E_ALLdisplay_errors = Offlog_errors = Onerror_log = /var/log/php-fpm/error.logsystemctl restart php-fpmslowlog = /var/log/php-fpm/www-slow.logrequest_slowlog_timeout = 5ssystemctl restart php-fpm这几步走完,错误、慢请求、访问记录都会乖乖落地,后续筛选分析才有依据。
日志文件会越来越大,不处理的话光是读取就能让你怀疑人生。
这些做法能帮你把日志从“临时排查工具”升级为“长期监控资产”,效率提升不是一星半点。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8