Назад | Перейти на главную страницу

Как сделать файлы журнала Apache доступными для пользователей виртуального хостинга в режиме реального времени?

Я ищу решение, позволяющее сделать файлы журнала Apache доступными для общего хостинга безопасным способом и в режиме реального времени. Я запускаю Apache 2.2 на Debian и настроил Apache для ведения отдельных журналов доступа и ошибок для каждого виртуального хоста в общем каталоге, т.е. / var / log / apache2, файлы журналов принадлежат root.adm и имеют разрешение 640.

Прямо сейчас у меня есть хакерское решение, которое использует ежечасное задание cron для копирования файлов журналов всех виртуальных хостов в другой каталог, который доступен только для чтения пользователю, под которым запускается пользовательский CGI-скрипт. Затем этот CGI-скрипт сопоставляет аутентифицированного пользователя с виртуальными хостами, которыми он владеет, и предлагает для загрузки файлы журналов этих виртуальных хостов. Это плохо, потому что мне нужно вести отдельную таблицу для сопоставления аутентифицированных пользователей с их виртуальными хостами, а журналы обновляются только каждый час.

Если у вас уже есть отдельные журналы, почему бы не поместить их в домашние папки пользователей? Очевидно, вы не хотите, чтобы они находились в корневом веб-каталоге пользователей, но их домашние папки не должны быть доступны через Интернет, так что это должно быть нормально. Или я что-то упускаю?

Барт.

Запишите журналы для процесса, и пусть этот процесс разбивает файлы журналов соответствующим образом.

См. Документацию по apache для "Трубопроводные бревна".

Я почти уверен, что syslog-ng делает то, что вы хотите. Он поддерживает разделение вывода и присвоение права собственности результирующим файлам. Все это можно сделать практически в реальном времени.