Ответ 1
У меня такая же проблема с сервером 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
, если вы используете оба). -
Перезапустите Apache:
sudo /etc/init.d/apache2 restart
Pro
У вас может быть несколько директив CustomLog
в записи VirtualHost
для вашего сайта, и все они будут работать.
Con
Вам нужно переместить запись CustomLog
в запись вашего сайта VirtualHost
вместо того, чтобы иметь ее в отдельном файле конфигурации.
Обходной путь 2
-
Прокомментируйте директиву
CustomLog
на вашем сайтеVirtualHost
. Если вы используете одну из конфигураций сайта по умолчанию (default
илиdefault-ssl
), будет существовать директиваCustomLog
для журнала доступа, которую вам нужно будет прокомментировать (да, это отключает ведение журнала доступа по умолчанию Apache). -
Добавьте директиву
CustomLog
в соответствующий файл конфигурации. Для меня это было/etc/apache2/mods-available/dav_svn.conf
. -
Перезапустите Apache:
sudo /etc/init.d/apache2 restart
Pro
Вы можете сохранить директиву CustomLog
в отдельном файле конфигурации.
Con
У этого обходного пути есть очевидный недостаток: вам нужно отключить ведение журнала доступа по умолчанию Apache, но для меня это меня не волнует, поскольку я использую только сервер для доступа к Subversion.
Заключение
Ни одно из этих обходных решений действительно не идеально, но до сих пор я не нашел способ заставить его работать, кроме двух обходных решений выше. Полагаю, нам придется подождать, пока будет исправлена следующая версия Apache для исправления этой проблемы.