在debian的默认apache2配置中,/etc/apache2/sites-enabled/000-default包含许多默认VirtualHost的设置:

<VirtualHost *:80>
    # Many good settings here, among them:
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
</VirtualHost>

在另一个配置文件中,我想覆盖其中的一个,即CustomLog设置,以便使日志进入其他位置。我不想复制或弄乱其他所有设置,例如ScriptAlias。但是我仍然希望它适用于<VirtualHost *:80>

那可能吗?

我尝试了什么

我试着把它放进去/etc/apache2/sites-enabled/001-mylog:
<VirtualHost *:80>
    CustomLog ${APACHE_LOG_DIR}/my.log combined
</VirtualHost>

那没有效果,大概是因为apache只看第一个<VirtualHost>部分,并且/etc/apache2/sites-enabled/000-default/etc/apache2/sites-enabled/001-mylog之前加载。

相反,我尝试将相同的片段放在/etc/apache2/conf.d/mylog中,该片段在/etc/apache2/sites-enabled/000-default之前加载,因为/etc/apache2/apache2.confInclude conf.d/之前具有Include sites-enabled/。这确实覆盖了我想要的CustomLog值。但是现在ScriptAlias中的/etc/apache2/sites-enabled/000-default无效。

我想避免从/etc/apache2/sites-enabled/000-default复制所有内容,以有效地创建默认debian apache配置文件的派生。

文献资料

Apache HTTP Server - core documentation具有这样的模糊性:


<VirtualHost>的行为不像<Directory>
非常令人困惑的是,在我看来,对于<VirtualHost>指令,只考虑了一个匹配的实例。但是对于<Directory>指令,它们被添加/组合在一起,以便:
<Directory "/some/dir">
        Options Indexes MultiViews FollowSymLinks
</Directory>
<Directory "/some/dir">
        AllowOverride None
        Order deny,allow
        Allow from all
</Directory>

等效于:
<Directory "/some/dir">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Allow from all
</Directory>

但是这种机制不适用于<VirtualHost> :-(

编辑:这与Sharing configuration between several VHosts不同,因为debian的默认VirtualHost不使用任何这些解决方案。但是也许其他人可以从该答案中找到灵感。

最佳答案

对于多个虚拟主机(虚拟主机)的定义,我也有同样的困惑。它们是否覆盖(重新定义),重叠?还是里面还有其他隐蔽的细节?

我发现此难题的一些链接如下:
https://www.thegeekstuff.com/2011/07/apache-virtual-host/
https://httpd.apache.org/docs/2.4/vhosts/examples.html

考虑到内部的这些示例,我可以说虚拟主机的定义不相同(即使它们看起来相同)。区别主要在于内部定义中的 SeverName 。 Apache httpd服务器根据内部的 ServerName (每个vhost定义)区分不同的vhost定义,而不是的ipt_code头中列出的IP地址或端口号。

这个难题不断出现,因为对此主题(在网络上)缺乏明确的解释。我希望这篇文章可以在某种程度上帮助减轻这种困扰。

关于apache - 覆盖默认Apache <VirtualHost>块中的单个设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20904278/

10-14 03:16