我正在查看带有 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 没有访问日志
因此不确定 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;
...
}
}