nginx + php-fpm 虽然有配置选项,但无法写入 php 访问日志

nginx + php-fpm 虽然有配置选项,但无法写入 php 访问日志

我正在查看带有 php-fpm 的 nginx 服务器。我看到池配置 /etc/php5/fpm/pool.d/www.conf 中的 access.log 指令

; The access log file
; Default: not set
access.log = /var/log/$pool.php.access.log

但是访问日志文件 /var/log/www.php.access.log 并未创建。我手动创建了此文件,但仍然没有被填充。

PHP 手册没有列出 access.log 配置

http://php.net/manual/en/install.fpm.configuration.php

这篇文章说 fastcgit 没有访问日志

有 fastcgi 的访问日志吗?

因此不确定 access.log 配置是否有效。我希望看到的是从 nginx 传递到 php 应用程序的所有请求的日志记录。

提前感谢您的帮助。

答案1

你重新加载了 php-fpm 吗?在我的 Mac 上没问题。

/etc/php-fpm.d/www.conf
access.log = /var/log/www.log

重新加载 php-fpm

kill -USR2 2233

2233 是 php-fpm 进程 ID

答案2

将日志记录移至 Nginx,因为 PHP-FPM 没有访问日志。有关 PHP-FPM 配置选项的更多详细信息看这里

要应用 Nginx 的日志记录,您也可以使用变量,但这样做会有一些限制,您可能不想处理。有关详细信息看这里

Nginx 配置仅在 PHP 级别上使用访问日志,而不使用变量:

server {
    listen          80;
    listen          [::]:80;
    server_name     www.mysite.com;

    root            /var/www/www.mysite.com;
    access_log      off;

    location / {
            ...
    }

    location ~ \.php$ {
            access_log              /var/log/www.log;
            ...
    }
}

相关内容