我正在尝试使用 HTTP 标头将标头从 php 代码传递回 apache 访问日志,如下所示:
Header note X-Userid userid
Header unset X-Userid
LogFormat "%h %l %{userid}n %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined_with_php_userid
CustomLog /var/log/apache2/access_log combined_with_php_userid
使用mod_php
,用户标识按预期插入到日志中,并且在发送到客户端之前未设置标头。
通过 php-fpm 运行时,使用以下行,用户 ID 不会插入到日志中,也不会在客户端 HTTP 标头中取消设置。
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9001/var/html/$1
最初我使用的是apache_note
,但这仅适用于mod_php
. 我发现上述作为将数据从 PHP 传递到 Apache/php-fpm 或 nginx 的解决方案,但它似乎不适用于 php-fpm。
我需要启用或设置什么才能Header unset
在 php-fpm 下工作吗?
虚拟主机配置:
<VirtualHost *:80>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9001/web/ee2/sites/site.com/$1
ServerAdmin [email protected]
DocumentRoot /web/ee2/sites/site.com
ServerName site.dev
Header note X-Userid userid
Header unset X-Userid
ErrorLog /var/log/apache2/site.dev-error_log
LogFormat "%h %l %{userid}n %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined_with_php_userid
# also tried: # LogFormat "%h %l %{X-Userid}i %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined_with_php_userid
CustomLog /var/log/apache2/searchenginenews.com-access_log combined_with_php_userid
<Directory /web/ee2/sites/site.com>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>