使用PHP设置的环境变量来处理特定的Apache日志

时间:2017-12-08 08:51:43

标签: php apache

我的目标是根据 Apache 调用的执行PHP资源来写入不同的日志文件。

我的第一个想法是简单地在PHP脚本中使用apache_setenv()设置环境变量,并在Apache conf中使用CustomLog中的该变量。

这样的东西

PHP

apache_setenv('VAR=yes');

的Apache

CustomLog "filename1" logFormat env=!VAR
CustomLog "filename2" logFormat env=VAR

非常直接,对吧?

除了它不起作用:Apache永远不会检测到VAR,因此日志始终放在filename1

我的下一个测试是在日志行中打印变量 ,只是为了查看它是否已正确设置。

的Apache

LogFormat ... "%{VAR}e" ... logFormat

它有效!我在相应的日志行广告位中获得了yes

所以似乎apache_setenv确实为CustomLog配置创建了一个环境变量,但太晚

我也尝试过:

  1. $_SERVER['VAR'] = 'yes';
  2. $_ENV['VAR'] = 'yes';
  3. 我唯一的另一个想法是用PHP编写其他日志文件我自己,而不是通过CustomLog。但这意味着我必须自己构建行日志并“伪造”LogFormat。

0 个答案:

没有答案