在debian的默认apache2配置中,/etc/apache2/sites-enabled/000-default
包含许多默认VirtualHost的设置:
# Many good settings here, among them: CustomLog ${APACHE_LOG_DIR}/access.log combined ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
在另一个配置文件中,我想覆盖它们中的一个,即CustomLog
设置,以便日志转到其他地方.我不想复制或搞乱所有其他设置,例如ScriptAlias
.但我仍然希望它适用于
.
那可能吗?
我试过这个
/etc/apache2/sites-enabled/001-mylog
:
CustomLog ${APACHE_LOG_DIR}/my.log combined
这没有任何影响,大概是因为apache只查看第一
部分,然后/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.conf
有一个Include conf.d/
之前Include sites-enabled/
.这确实覆盖了CustomLog
我想要的价值.但是现在这个ScriptAlias
从未/etc/apache2/sites-enabled/000-default
生效.
我想避免重复一切,从/etc/apache2/sites-enabled/000-default
有效创建默认debian apache配置文件的fork.
Apache HTTP Server - 核心文档相当模糊:
收到请求后,服务器首先根据本地IP地址和端口组合将其映射到最佳匹配.非通配符具有更高的优先级.如果根本不发生基于IP和端口的匹配,则使用"主"服务器配置.
如果多个虚拟主机包含最匹配的IP地址和端口,则服务器会根据请求的主机名从这些虚拟主机中选择最佳匹配.如果未找到匹配的基于名称的虚拟主机,则将使用与IP地址匹配的第一个列出的虚拟主机.因此,给定IP地址和端口组合的第一个列出的虚拟主机是该IP和端口组合的默认虚拟主机.
表现得不像
非常混乱,它看起来好像对于
指令,只考虑一个匹配的实例.但是对于eg
指令,它们被添加/组合,因此:
Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Allow from all
相当于:
Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Allow from all
但这种机制不适用于
:-(