1

Я хотел бы настроить Apache2 так, чтобы он регистрировался в отдельный журнал для доступа и ошибок. App1 находится в /var /www /, а App2 - в /var /www /app2. Как мне подойти к этой проблеме?

Должен ли я создать виртуальный хост для каждого каталога, или .htaccess будет работать для того, что я пытаюсь сделать?

2 ответа2

1

Поместите директиву ErrorLog в конфигурацию сайта /etc/apache2/site-available/mysite :

CustomLog ${APACHE_LOG_DIR}/access.log
ErrorLog ${APACHE_LOG_DIR}/error.log

В конце концов вы можете заменить ${APACHE_LOG_DIR} абсолютным путем.

Если вам нужны более сложные вещи, вы можете использовать утилиту rotatelogs, например:

CustomLog "|bin/rotatelogs logs/access.%Y-%m-%d-%H_%M_%S 10M" common
ErrorLog "|bin/rotatelogs logs/error.%Y-%m-%d-%H_%M_%S 10M"

Пока вы это делаете, вы можете указать дополнительный префикс / постфикс для строки «access / error», чтобы настроить его для каждого сайта.

0

Файл .htaccess не будет работать, извините. Вы должны поместить это в файл журнала.

Из конфигурационных документов на Apache

CustomLog Directive
Description:    Sets filename and format of log file
Syntax: CustomLog file|pipe format|nickname [env=[!]environment-variable]
Context:    server config, virtual host
Status: Base
Module: mod_log_config

Я еще не проверял, работает ли он в блоках. Вы можете поэкспериментировать с этим. В противном случае у них есть пример SetEnfIf и CustomLog на основе переменных env, которые будут работать для того, что вы хотите.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .