温馨提示×

ubuntu php-fpm怎样配置慢日志

小樊
50
2026-09-13 10:13:25
栏目: 编程语言

在 Ubuntu 下配置 PHP-FPM 慢日志(slow log),通常用于排查执行较慢的 PHP 请求。下面是完整的配置步骤。


一、找到 PHP-FPM 池配置文件

PHP-FPM 通常使用 pool(池) 配置,常见位置:

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

版本号可能是 7.4、8.0、8.2 等,根据你安装的版本调整。


二、编辑 www.conf 配置慢日志

打开配置文件:

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

找到或添加以下配置项:

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

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

说明:

  • 5s 表示脚本执行超过 5 秒就记录
  • 可根据需要改为 1s、2s

三、创建日志目录(如不存在)

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

四、重启 PHP-FPM

sudo systemctl restart php8.1-fpm

确认状态:

sudo systemctl status php8.1-fpm

五、测试慢日志是否生效

创建一个测试脚本:

<?php
sleep(10);
echo "done";

访问该脚本后查看日志:

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

示例输出:

[pool www] pid 12345
script_filename = /var/www/html/test.php
[0x00007f...] sleep() /var/www/html/test.php:3

六、常用补充配置(可选)

; 记录完整的 PHP 调用栈
request_slowlog_trace_depth = 20

; 请求超时直接杀掉(防止卡死)
request_terminate_timeout = 30s

七、日志轮转(推荐)

创建 logrotate 配置:

sudo nano /etc/logrotate.d/php-fpm-slow

内容:

/var/log/php-fpm/slow.log {
    weekly
    missingok
    rotate 4
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
}

如果你使用的是 Nginx + PHP-FPM 或 Docker 环境,我也可以给你对应的配置示例。

0 踩