-->

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

2019-06-24 02:05发布

我有它的错误日志我想发送到不同的文件的两个目录在/ var / WWW(比如,在/ var / WWW / APP1和/ var /网络/应用2)。 两者都是同一个域下的,所以我认为我不能把他们在不同的虚拟主机。 因此,举例来说,我会访问它们为:

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>

我多少有些失落什么我应该做的。 也就是说,如果有办法让错误日志的工作或我是否应该跟上配置为每个目录虚拟主机尝试。 任何帮助,将不胜感激! 谢谢!

Answer 1:

为什么你设置Directory选项/VirtualHost方面? 使用<Directory /var/www/app1>而不是<Directory />

由于Apache的ErrorLog指令文档的背景是server config, virtual host -这意味着它是唯一可以定义错误日志整个服务器或为VirtalHost ,而不是一个Directory 。 所以,如果你想不同的日志发送到不同的文件,尝试使用SetEnvIf设置一个环境变量。 Depeding对你所在的目录,它应该像SetEnvIf Request_URI ^\/a1\/ a1SetEnvIf Request_URI ^\/a2\/ !a1 。 然后写取决于日志a1环境变量。



Answer 2:

最后我做到了,先创建每个文件夹,并传递的ProxyPass子域中的内容内部子域。

启用阿帕奇MODS:

a2enmod authz_core dir proxy proxy_http

/ etc / hosts文件

127.0.0.1       localhost
127.0.0.1       a.localhost
127.0.0.1       b.localhost

/etc/apache2/sites-available/default.conf

<VirtualHost *:80>
        ServerName localhost
        ServerAdmin fake@mail.com
        DocumentRoot "/dev/null"

        ProxyPass /a http://a.localhost/
        ProxyPassReverse /a http://a.localhost/
        ProxyPass /b http://b.localhost/
        ProxyPassReverse /b http://b.localhost/

        LogLevel debug

        ErrorLog ${APACHE_LOG_DIR}/default-error.log
        CustomLog ${APACHE_LOG_DIR}/default-access.log combined

</VirtualHost>

/etc/apache2/sites-available/a.conf

<VirtualHost *:80>
        ServerName a.localhost
        ServerAdmin fake@mail.com
        DocumentRoot "/Publikoa/a"

        <Directory "/Publikoa/a">
                DirectoryIndex index.html
                Require all granted
        </Directory>

        LogLevel debug

        ErrorLog ${APACHE_LOG_DIR}/a-error.log
        CustomLog ${APACHE_LOG_DIR}/a-access.log combined

</VirtualHost>

/etc/apache2/sites-available/b.conf

<VirtualHost *:80>
        ServerName b.localhost
        ServerAdmin fake@mail.com
        DocumentRoot "/Publikoa/b"

        <Directory "Publikoa/b">
                DirectoryIndex index.html
                Require all granted
        </Directory>

        LogLevel debug

        ErrorLog ${APACHE_LOG_DIR}/b-error.log
        CustomLog ${APACHE_LOG_DIR}/b-access.log combined

</VirtualHost>

启用站点:

a2ensite default a b

重新启动Apache:

/etc/init.d/apache2 restart


文章来源: Apache server — multiple directories, different error logs