我正在使用带有 VirtualHosts 的 Apache 2,目前,我必须为每个新的 vhost 手动添加ErrorLog
/ CustomLog
(我知道我可以使用脚本来创建它们)。
有没有办法在正常的 apache2 配置中定义这些指令,以便对于每个 vhost,可以根据 ServerName 自动设置日志指令,还是必须为每个 vhost 单独创建这些指令?
答案1
请参阅这个答案:具有动态日志的虚拟主机中的通配符?
简短的回答是否定的,您不能拥有某种动态ErrorLog
定义,通过单一ErrorLog
设置为每个虚拟主机创建单独的日志,但您可以使用一些技巧将CustomLog
虚拟主机添加到日志中,然后将输出通过管道传输到脚本以解析数据并写入不同的日志文件。
不过,我认为所有这些都相对复杂。我会编写一个脚本,将每个虚拟主机的配置文件生成到特定目录中,每个文件都有自己的ErrorLog
和CustomLog
指令,然后使用该脚本Include
将该目录的文件包含到总体配置中。让脚本在每次服务器启动、重新启动或 HUP 之前运行并完成。
另一种选择是编写一个 Apache 模块,引入一个配置指令,允许您执行您想做的事情。