温馨提示×

ubuntu php-fpm如何开启慢日志

小樊
40
2026-10-01 11:38:15
栏目: 编程语言

在 Ubuntu 上,PHP-FPM 的**慢日志(slow log)**是通过 php-fpm.conf 或 pool 配置文件开启的。下面一步一步说明。


一、找到 PHP-FPM 配置文件

通常路径如下(以 PHP 8.1 为例,根据你的版本调整):

# 主配置
/etc/php/8.1/fpm/php-fpm.conf

# pool 配置(常用)
/etc/php/8.1/fpm/pool.d/www.conf

慢日志一般在 pool 配置 里设置(如 www.conf)


二、开启慢日志(核心配置)

编辑 pool 配置文件:

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

找到或添加以下配置:

; 请求执行超过该时间(秒)就记录慢日志
request_slowlog_timeout = 2s

; 慢日志文件路径
slowlog = /var/log/php8.1-fpm/slow.log

说明:

  • 2s:脚本执行超过 2 秒就记录
  • 可写 1s、0.5s 等

三、确保日志目录可写

sudo mkdir -p /var/log/php8.1-fpm
sudo chown -R www-data:adm /var/log/php8.1-fpm

四、重启 PHP-FPM

sudo systemctl restart php8.1-fpm

五、验证慢日志是否生效

  1. 写一个慢脚本测试:
<?php
sleep(5);
  1. 访问该脚本

  2. 查看日志:

tail -f /var/log/php8.1-fpm/slow.log

示例输出:

[xx-xx-xx xx:xx:xx] [pool www] pid 12345
script_filename = /var/www/html/test.php
[0x0000xxxx] sleep() /var/www/html/test.php:2

六、常见问题

1. 没看到日志?

  • 确认 request_slowlog_timeout 已启用(去掉前面的 ;)
  • 确认脚本执行时间 超过 设定值
  • 确认 PHP-FPM 已重启

2. 只想临时排查?

可以临时改成:

request_slowlog_timeout = 1s

如果你告诉我:

  • PHP 版本
  • 是否是 Docker / Nginx / Apache

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

0 踩