温馨提示×

ubuntu php慢日志如何开

小樊
37
2026-10-24 01:55:00
栏目: 编程语言

在 Ubuntu 上开启 PHP 慢日志(slow log),通常是指 PHP-FPM 的慢执行日志(不是 Nginx 的慢日志)。下面按常见场景说明。


一、确认你用的是 PHP-FPM(最常见)

Ubuntu 一般通过 php-fpm 运行 PHP:

ps aux | grep php-fpm

二、开启 PHP-FPM 慢日志

1. 找到 PHP-FPM 配置文件

不同版本路径不同,例如:

# PHP 7.4
/etc/php/7.4/fpm/pool.d/www.conf

# PHP 8.1
/etc/php/8.1/fpm/pool.d/www.conf

# PHP 8.2
/etc/php/8.2/fpm/pool.d/www.conf

2. 修改 www.conf

编辑对应版本的 www.conf:

sudo vim /etc/php/8.1/fpm/pool.d/www.conf

找到并修改以下三项(去掉前面的 ;):

; 慢日志路径
slowlog = /var/log/php-fpm/slow.log

; 超过多少秒算慢(例如 1 秒)
request_slowlog_timeout = 1s

; 可选:记录慢请求的完整 backtrace
request_terminate_timeout = 30s

⚠️ 注意:

  • request_slowlog_timeout 支持 s(秒),如 0.5s
  • 目录要存在,否则 PHP-FPM 启动失败

3. 创建日志目录(如需要)

sudo mkdir -p /var/log/php-fpm
sudo chown www-data:www-data /var/log/php-fpm

4. 重启 PHP-FPM

sudo systemctl restart php8.1-fpm

三、查看慢日志

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

示例内容:

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

四、Nginx 层面的“慢”(可选)

如果是 Nginx 请求慢,和 PHP 无关:

# /etc/nginx/nginx.conf
log_format main '$request_time $upstream_response_time $request';
access_log /var/log/nginx/access.log main;

五、常见问题

1. 慢日志没生成?

  • 确认 request_slowlog_timeout 已生效
  • 确认 PHP 请求真的超过设定时间
  • 看 PHP-FPM 错误日志:
    /var/log/php8.1-fpm.log
    

2. CLI 模式没有慢日志

PHP CLI 不支持 slowlog,只在 FPM / CGI 模式有效。


如果你告诉我:

  • PHP 版本(php -v)
  • 是否用 Nginx / Apache
  • 是否是 Docker 环境

我可以给你更精确的配置。

0 踩