温馨提示×

centos php日志怎么找慢请求

小樊
40
2026-09-24 08:55:17
栏目: 编程语言

在 CentOS 上排查 PHP 慢请求,一般从 PHP-FPM 慢日志、Nginx/Apache 访问日志、PHP 自身日志 三个方向入手。下面按最常用、最有效的顺序说明。


一、PHP-FPM 慢请求日志(最推荐)

如果你用的是 PHP-FPM(最常见),CentOS 上默认就支持慢日志。

1. 找到 php-fpm 配置

php --version
# 例如 php 7.4
vim /etc/php-fpm.d/www.conf

2. 开启慢日志

在 www.conf 中确认或修改:

request_slowlog_timeout = 2s
slowlog = /var/log/php-fpm/www-slow.log

含义:

  • 请求超过 2 秒 就记录
  • 慢日志写到 /var/log/php-fpm/www-slow.log

3. 重启 php-fpm

systemctl restart php-fpm

4. 查看慢请求

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

示例内容:

[20-Oct-2024 10:12:33]  [pool www] pid 12345
script_filename = /var/www/html/index.php
[0x00007f...] sleep() /var/www/html/index.php:20

可以清楚看到:

  • 哪个 PHP 文件
  • 哪一行
  • 卡在哪个函数

二、Nginx 访问日志看响应时间(辅助)

如果你用的是 Nginx:

1. 修改 Nginx 日志格式

log_format main '$remote_addr - $request_time - $upstream_response_time $request';

2. 查看慢请求

tail -f /var/log/nginx/access.log

关注:

  • $request_time 大(整体慢)
  • $upstream_response_time 大(PHP 慢)

例如:

1.2.3.4 - 5.321 - 5.300 GET /api/user

说明 PHP 处理了 5 秒。


三、Apache 用户(mod_php / php-fpm)

Apache + php-fpm

和上面 php-fpm 配置一样。

Apache 访问日志

tail -f /var/log/httpd/access_log

四、PHP 错误日志(辅助)

vim /etc/php.ini

确保开启:

log_errors = On
error_log = /var/log/php/php-error.log

查看:

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

五、常用排查组合(实战)

# 实时看慢请求
tail -f /var/log/php-fpm/www-slow.log

# 看访问是否慢
tail -f /var/log/nginx/access.log

# 系统资源
top
htop

六、常见慢请求原因

  • sleep() / 外部 API 超时
  • 数据库慢查询(看 MySQL slow log)
  • 文件 IO 大
  • 循环里查数据库
  • 缓存未命中

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

  • CentOS 版本
  • PHP 版本
  • 用的 Nginx 还是 Apache

我可以直接帮你写一份可用的配置文件。

0 踩