使用 vhost_alias,我可以将日志位置设置为当前 vhost 吗?

使用 vhost_alias,我可以将日志位置设置为当前 vhost 吗?

我不确定我的问题是否清楚,但这里有一个小解释:

我正在使用 apache mod_vhost_alias,它非常适合我轻松创建新域(只需创建相应的域名文件夹)它的配置如下:

UseCanonicalName Off
VirtualDocumentRoot /var/www/%0/htdocs 

但是,我希望能够自动将日志写入 /var/www/%0/logs

有没有什么办法可以用这样的模式来实现这一点?

谢谢

答案1

据我所知,你不能开箱即用。但你记录到命名管道或直接记录到脚本并让脚本根据需要重新创建日志文件:

http://httpd.apache.org/docs/current/logs.html#piped

如果您需要脚本方面的帮助,请发布您的日志文件示例。

用 shell 脚本编写的未优化、未测试的示例:

#!/bin/bash
# This assumes the host is mentioned in the first column, replace $1 with the right column if needed.
while read line
  do 
  virtualhost=`echo $line | awk '{print $1}'`
  echo $line >> /var/www/$virtualhost/log/access_log
done

相关内容