Почему я не могу заставить директиву CustomLog Apache работать?

Я пытаюсь использовать Apache CustomLog директива для создания некоторых пользовательских файлов журнала, но не может получить его работа. Вот конфигурация, которую я использую для пользовательских журналов:

LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

CustomLog /var/log/apache2/jb_common common
CustomLog /var/log/apache2/jb_referer referer

Apache создает оба из этих пользовательских файлов журнала на запуске, таким образом, он определенно видит CustomLog директивы, но это никогда ничего не пишет в эти файлы; однако, журнал доступа по умолчанию (access.log) пишется в.

Какие-либо идеи? Я выполняю Apache 2.2 на Ubuntu 8.10.

10
задан Mike Spross 11 January 2010 в 02:11
поделиться

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

  1. Удалить CustomLog Директива из файла конфигурации, если у вас его установлено в отдельном файле конфигурации.

  2. Добавьте CustomLog Директива на ваш сайт Virtualhost вход. Для меня это было в / etc / apache2 / sites - доступны / default-ssl , потому что я разрешаю только доступ SSL к репозитории Subversion. Если вы используете / etc / apache2 / fitsies - доступны / default , вы захотите отредактировать этот файл вместо этого (или в дополнение к по умолчанию-SSL , если вы используете оба).

  3. Перезапустить Apache:

Перезапуск Sudo /etc/init.d/apache2

Pro

Вы можете иметь несколько CustomLog директивы в Virtualhost для вашего Сайт, и они будут все работать.

CON

Вы должны переместить Customleg в записи Virtualhost вместо того, чтобы иметь его в отдельном файле конфигурации.

Обходной путь 2

  1. Прокомментируйте директиву CustomLog в своем сайте Virtualhost вход. Если вы используете один из конфигураций сайта по умолчанию ( по умолчанию или по умолчанию-SSL ), будет представлять собой директиву Customleg для журнала доступа, который вы будете Нужно прокомментировать (да, это отключает регистрацию доступа к по умолчанию Apache).

  2. Добавьте ваш CustomLog Директива к соответствующему файлу конфигурации. Для меня это было /etc/apache2/mods-available/dav_svn.conf .

  3. Перезапуск Apache:

Sudo /etc/init.d/apache2 Перезапуск

Pro

Вы можете сохранить форму CustomLog Directive в отдельном файле конфигурации.

CON

Этот обходной путь имеет очевидный недостаток, который вы должны отключить регистрацию доступа к умолчанию Apache, но для меня мне все равно, так как я использую только сервер для доступа к Subversion.

ЗАКЛЮЧЕНИЕ

Ни один из этих обстоятельств не на самом деле идеально, но до сих пор я не нашел способа получить его на работу, отличный от двух разрабатываний выше. Я предполагаю, что нам придется ждать следующего выпуска Apache для этого вопроса, чтобы быть исправленным.

13
ответ дан 3 December 2019 в 23:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: