我对 Ubuntu 9.10 服务器和 Apache 2.2.12 有同样的问题。我正在设置一个 Subversion 服务器,mod_dav_svn
并添加了一个CustomLog
指令来/etc/apache2/mods-available/dav_svn.conf
记录 Subversion 请求,但遇到了同样的问题(日志文件是在 Apache 启动时创建的,但从未写入):
<Location /svn>
...
</Location>
LogFormat "%t %u %{SVN-ACTION}e" svn_log
CustomLog /var/log/apache2/svn_access.log svn_log env=SVN-ACTION
我发现的问题有两种解决方法,它们基本上是同一件事。我在这里记录两者,因为它们有不同的优点和缺点。
解决方法 1
CustomLog
如果您在单独的配置文件中设置了该指令,请从配置文件中删除该指令。
CustomLog
将该指令添加到您网站的VirtualHost
条目中。对我来说,这是/etc/apache2/sites-available/default-ssl
因为我只允许 SSL 访问 Subversion 存储库。如果您正在使用/etc/apache2/sites-available/default
,您将需要编辑该文件(或者default-ssl
如果您同时使用这两个文件)。
重启阿帕奇:
sudo /etc/init.d/apache2 restart
临
您可以在站点的条目中包含多个CustomLog
指令,它们都可以工作。VirtualHost
骗局
您必须将您的CustomLog
条目移动到您站点的VirtualHost
条目中,而不是将其放在单独的配置文件中。
解决方法 2
注释掉您网站条目CustomLog
中的指令。VirtualHost
如果您使用的是默认站点配置之一(default
或default-ssl
),则会有一个CustomLog
访问日志指令,您需要将其注释掉(是的,这会关闭 Apache 的默认访问日志)。
将您的CustomLog
指令添加到适当的配置文件中。对我来说这是/etc/apache2/mods-available/dav_svn.conf
.
重启阿帕奇:
sudo /etc/init.d/apache2 restart
临
您可以将CustomLog
指令保存在单独的配置文件中。
骗局
这种解决方法有一个明显的缺点,即您必须禁用 Apache 的默认访问日志记录,但对我来说,我并不在意,因为我只使用服务器进行 Subversion 访问。
结论
这些解决方法都不是真正理想的,但到目前为止,除了上述两种解决方法之外,我还没有找到让它工作的方法。我想我们必须等待 Apache 的下一个版本才能解决这个问题。