Apache服务器 - 多个目录,不同的错误日志

Ray*_*Ray 6 apache2 error-log

我在/ var/www中有两个目录(例如,/ var/www/app1和/ var/www/app2),我想将错误日志发送到不同的文件.两者都属于同一个域,所以我认为我不能把它们放在不同的虚拟主机下.因此,例如,我将访问它们:

HTTP://本地主机/ APP1

HTTP://本地主机/ APP 2

我遇到过这个页面:

为Apache中的不同子目录生成访问日志

其解决方案适用于访问日志.但是,"env"参数似乎不适用于ErrorLog指令.

在这个"发现"之前,我正在研究这个,这似乎是错误的:

<VirtualHost *:80>
  ServerAdmin ray@localhost

  DocumentRoot /var/www/app1

  <Directory />
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order deny,allow
    allow from all
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/app1/error.log

  LogLevel warn

  CustomLog ${APACHE_LOG_DIR}/app1/access.log combined
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我对自己应该做的事感到有些迷茫.也就是说,如果有一些方法可以使ErrorLog工作,或者我应该继续尝试为每个目录配置虚拟主机.任何帮助,将不胜感激!谢谢!

s.w*_*dit 8

为什么Directory/VirtualHost上下文中设置选项?用<Directory /var/www/app1>而不是<Directory />

由于Apache ErrorLog指令docs的上下文是server config, virtual host- 这意味着它只能为整个服务器或a VirtalHost而不是a 定义ErrorLog Directory.因此,如果要将不同的日志发送到不同的文件,请尝试使用SetEnvIf设置Env变量.取决于你所在的目录,它应该是SetEnvIf Request_URI ^\/a1\/ a1SetEnvIf Request_URI ^\/a2\/ !a1.然后根据a1环境变量写入日志.