告诉Apache以不同的用户创builderror.log / access.log

如果您告诉Apache使用CustomLog文件,Apache2将在启动时创build这些文件。 它总是把它们给root用户:root。 我怎样才能改变这种行为?

背景

Apache运行

SuexecUserGroup www-data www-data 

同时,我使用一个将它输出到脚本的CustomLog。 该脚本从IP中删除两个字节,然后写入日志文件。 由于您不能告诉Apache从error.log中省略IP,因此此pipe道输出非常重要(关于德国隐私法)。

如果脚本不属于www-data ,脚本将无法访问我的自定义日志。

如果我改变了主人,everthing正常工作。

我也知道如何在logrotate重命名并重新创build日志文件时更改文件所有者。

但是,如果我停止了Apache进程,请删除日志文件,然后重新启动Apache进程,新文件将会以root身份login。

我如何告诉Apache在启动时创build新的无效文件为/ www-data

这个句子:

如果脚本不属于www-data,脚本将无法访问我的自定义日志。

http://httpd.apache.org/docs/current/logs.html#piped直接相冲突:

pipe道日志进程由父Apache Apache进程产生,并inheritance该进程的用户标识。 这意味着pipe道日志程序通常以root身份运行。 因此保持程序简单和安全非常重要。

如果你描述的情况是正确的,你仍然可以通过回避这个问题

  1. 忽略configuration文件中给出的日志文件名称
  2. 在脚本中devise自己的日志文件名称
  3. 如(2)所示将stdoutredirect到您select的文件