Пользовательские журналы ошибок apache для каталогов внутри корневого документа

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

Я запускаю Apache2 в машине Ubuntu 14.04. Имейте только один виртуальный хост, работающий в нем, и у вас есть корень документа в / var / www / html, где мы проживаем.

Внутри каталога html наш код содержит подкаталоги. Напр. dir1, dir2. Мне нужно, чтобы журнал ошибок был настроен, как и все журналы ошибок, связанные с кодом под dir1, должны находиться внутри dir1 и одинаково для dir2.

Как я могу настроить журналы ошибок? Пожалуйста, помогите мне. Спасибо, Advance!

1
задан 31 August 2017 в 09:19

18 ответов

Я считаю, что это то, что вы хотите:

SetEnvIf Request_URI ^/app/subapp1(/|$) subapp1 SetEnvIf Request_URI ^/app/subapp2(/|$) subapp2 CustomLog /absolute/path/to/app/subapp1/log/access_log common env=subapp1 CustomLog /absolute/path/to/app/subapp2/log/access_log common env=subapp2

Источник:

https://stackoverflow.com/questions/1460757/generate-access-logs-for- разные-подкаталоги-в-апаш

0
ответ дан 18 July 2018 в 07:39

Согласно этому сообщению https://stackoverflow.com/questions/10395043/apache-server-multiple-directories-different-error-logs

Это не выполнимо для журнала ошибок, поскольку директива ErrorLog работает только в конфигурации сервера или виртуального хоста.

В качестве альтернативы можно попробовать что-то вроде этого:

ErrorLog "|/usr/bin/tee -a ${APACHE_LOG_DIR}/error.log /var/www/apachelogs/error.txt"

Просто добавьте более сложную фильтрацию сценарий между ними и может быть, вам удастся добиться того, что вам нужно.

Некоторая nitpicking, зачем вам нужен журнал ошибок в каталоге с кодом? Имхо - угроза безопасности.

0
ответ дан 18 July 2018 в 07:39

Я считаю, что это то, что вы хотите:

SetEnvIf Request_URI ^/app/subapp1(/|$) subapp1 SetEnvIf Request_URI ^/app/subapp2(/|$) subapp2 CustomLog /absolute/path/to/app/subapp1/log/access_log common env=subapp1 CustomLog /absolute/path/to/app/subapp2/log/access_log common env=subapp2

Источник:

https://stackoverflow.com/questions/1460757/generate-access-logs-for- разные-подкаталоги-в-апаш

0
ответ дан 24 July 2018 в 18:50
  • 1
    Спасибо за ответ Джордж. Я уже пробовал это решение, он работает для access_logs, но не для error.logs. – harsha 31 August 2017 в 09:53
  • 2
    Даже когда вы редактируете имя в ErrorLog? – George Udosen 31 August 2017 в 09:56
  • 3
  • 4
    CustomLog /var/www/html/app1/error.log env = app1 ErrorLog /var/www/html/app1/error.log CustomLog /var/www/html/app2/error.log env = app2 ErrorLog / var / www /html/app2/error.log Вот как я отредактировал для error.log. Правильно ли это? – harsha 31 August 2017 в 10:05
  • 5
    Я даже попытался это сделать, я получил эту ошибку AH00526: Ошибка синтаксиса в строке 50 файла /etc/apache2/sites-enabled/000-default.conf: ErrorLog принимает один аргумент, имя файла журнала ошибок – harsha 31 August 2017 в 10:14

Согласно этому сообщению https://stackoverflow.com/questions/10395043/apache-server-multiple-directories-different-error-logs

Это не выполнимо для журнала ошибок, поскольку директива ErrorLog работает только в конфигурации сервера или виртуального хоста.

В качестве альтернативы можно попробовать что-то вроде этого:

ErrorLog "|/usr/bin/tee -a ${APACHE_LOG_DIR}/error.log /var/www/apachelogs/error.txt"

Просто добавьте более сложную фильтрацию сценарий между ними и может быть, вам удастся добиться того, что вам нужно.

Некоторая nitpicking, зачем вам нужен журнал ошибок в каталоге с кодом? Имхо - угроза безопасности.

0
ответ дан 24 July 2018 в 18:50
  • 1
    Спасибо mestia. Решение, которое вы предложили, я думаю, он не будет разделять журналы на основе каталогов. Нам это нужно, потому что каждый разработчик работает в разных каталогах (код). Они хотят знать, какая ошибка они получают особенно для кода, над которым они работают. – harsha 31 August 2017 в 10:12
  • 2
    В этом случае, я думаю, вы можете установить переменную с помощью setenvif и поместить эту переменную в файл журнала ошибок, отредактировав директиву журнала ошибок и добавив регистрацию% {VARNAME} e. это работает, просто фильтруйте соответствующие значения, прежде чем давать их разработчикам. – mestia 31 August 2017 в 10:28

Я считаю, что это то, что вы хотите:

SetEnvIf Request_URI ^/app/subapp1(/|$) subapp1
SetEnvIf Request_URI ^/app/subapp2(/|$) subapp2

CustomLog /absolute/path/to/app/subapp1/log/access_log common env=subapp1
CustomLog /absolute/path/to/app/subapp2/log/access_log common env=subapp2

Источник:

https://stackoverflow.com/questions/1460757/generate-access-logs -для-разные-подкаталоги-в-апашем

0
ответ дан 31 July 2018 в 21:57

Согласно этому сообщению https://stackoverflow.com/questions/10395043/apache-server-multiple-directories-different-errorloglog

Это не выполнимо для журнал ошибок, поскольку директива ErrorLog работает только в конфигурации сервера или виртуального хоста. Можно выделить AccessLog с функциями, предоставляемыми модулем setenvif.

В качестве альтернативы можно попробовать что-то вроде этого:

ErrorLog "|/usr/bin/tee -a ${APACHE_LOG_DIR}/error.log /var/www/apachelogs/error.txt"

Просто добавьте более сложную фильтрацию сценарий между ними, и вам удастся добиться того, что вам нужно.

Некоторое nitpicking, зачем вам нужен журнал ошибок в каталоге с кодом? Imho это угроза безопасности.

0
ответ дан 31 July 2018 в 21:57

Я считаю, что это то, что вы хотите:

SetEnvIf Request_URI ^/app/subapp1(/|$) subapp1
SetEnvIf Request_URI ^/app/subapp2(/|$) subapp2

CustomLog /absolute/path/to/app/subapp1/log/access_log common env=subapp1
CustomLog /absolute/path/to/app/subapp2/log/access_log common env=subapp2

Источник:

https://stackoverflow.com/questions/1460757/generate-access-logs -для-разные-подкаталоги-в-апашем

0
ответ дан 2 August 2018 в 15:12

Согласно этому сообщению https://stackoverflow.com/questions/10395043/apache-server-multiple-directories-different-errorloglog

Это не выполнимо для журнал ошибок, поскольку директива ErrorLog работает только в конфигурации сервера или виртуального хоста. Можно выделить AccessLog с функциями, предоставляемыми модулем setenvif.

В качестве альтернативы можно попробовать что-то вроде этого:

ErrorLog "|/usr/bin/tee -a ${APACHE_LOG_DIR}/error.log /var/www/apachelogs/error.txt"

Просто добавьте более сложную фильтрацию сценарий между ними, и вам удастся добиться того, что вам нужно.

Некоторое nitpicking, зачем вам нужен журнал ошибок в каталоге с кодом? Imho это угроза безопасности.

0
ответ дан 2 August 2018 в 15:12

Я считаю, что это то, что вы хотите:

SetEnvIf Request_URI ^/app/subapp1(/|$) subapp1
SetEnvIf Request_URI ^/app/subapp2(/|$) subapp2

CustomLog /absolute/path/to/app/subapp1/log/access_log common env=subapp1
CustomLog /absolute/path/to/app/subapp2/log/access_log common env=subapp2

Источник:

https://stackoverflow.com/questions/1460757/generate-access-logs -для-разные-подкаталоги-в-апашем

0
ответ дан 3 August 2018 в 19:18

Согласно этому сообщению https://stackoverflow.com/questions/10395043/apache-server-multiple-directories-different-errorloglog

Это не выполнимо для журнал ошибок, поскольку директива ErrorLog работает только в конфигурации сервера или виртуального хоста. Можно выделить AccessLog с функциями, предоставляемыми модулем setenvif.

В качестве альтернативы можно попробовать что-то вроде этого:

ErrorLog "|/usr/bin/tee -a ${APACHE_LOG_DIR}/error.log /var/www/apachelogs/error.txt"

Просто добавьте более сложную фильтрацию сценарий между ними, и вам удастся добиться того, что вам нужно.

Некоторое nitpicking, зачем вам нужен журнал ошибок в каталоге с кодом? Imho это угроза безопасности.

0
ответ дан 3 August 2018 в 19:18

Я считаю, что это то, что вы хотите:

SetEnvIf Request_URI ^/app/subapp1(/|$) subapp1
SetEnvIf Request_URI ^/app/subapp2(/|$) subapp2

CustomLog /absolute/path/to/app/subapp1/log/access_log common env=subapp1
CustomLog /absolute/path/to/app/subapp2/log/access_log common env=subapp2

Источник:

https://stackoverflow.com/questions/1460757/generate-access-logs -для-разные-подкаталоги-в-апашем

0
ответ дан 5 August 2018 в 04:05

Согласно этому сообщению https://stackoverflow.com/questions/10395043/apache-server-multiple-directories-different-errorloglog

Это не выполнимо для журнал ошибок, поскольку директива ErrorLog работает только в конфигурации сервера или виртуального хоста. Можно выделить AccessLog с функциями, предоставляемыми модулем setenvif.

В качестве альтернативы можно попробовать что-то вроде этого:

ErrorLog "|/usr/bin/tee -a ${APACHE_LOG_DIR}/error.log /var/www/apachelogs/error.txt"

Просто добавьте более сложную фильтрацию сценарий между ними, и вам удастся добиться того, что вам нужно.

Некоторое nitpicking, зачем вам нужен журнал ошибок в каталоге с кодом? Imho это угроза безопасности.

0
ответ дан 5 August 2018 в 04:05

Я считаю, что это то, что вы хотите:

SetEnvIf Request_URI ^/app/subapp1(/|$) subapp1
SetEnvIf Request_URI ^/app/subapp2(/|$) subapp2

CustomLog /absolute/path/to/app/subapp1/log/access_log common env=subapp1
CustomLog /absolute/path/to/app/subapp2/log/access_log common env=subapp2

Источник:

https://stackoverflow.com/questions/1460757/generate-access-logs -для-разные-подкаталоги-в-апашем

0
ответ дан 6 August 2018 в 21:06

Согласно этому сообщению https://stackoverflow.com/questions/10395043/apache-server-multiple-directories-different-errorloglog

Это не выполнимо для журнал ошибок, поскольку директива ErrorLog работает только в конфигурации сервера или виртуального хоста. Можно выделить AccessLog с функциями, предоставляемыми модулем setenvif.

В качестве альтернативы можно попробовать что-то вроде этого:

ErrorLog "|/usr/bin/tee -a ${APACHE_LOG_DIR}/error.log /var/www/apachelogs/error.txt"

Просто добавьте более сложную фильтрацию сценарий между ними, и вам удастся добиться того, что вам нужно.

Некоторое nitpicking, зачем вам нужен журнал ошибок в каталоге с кодом? Imho это угроза безопасности.

0
ответ дан 6 August 2018 в 21:06

Я считаю, что это то, что вы хотите:

SetEnvIf Request_URI ^/app/subapp1(/|$) subapp1
SetEnvIf Request_URI ^/app/subapp2(/|$) subapp2

CustomLog /absolute/path/to/app/subapp1/log/access_log common env=subapp1
CustomLog /absolute/path/to/app/subapp2/log/access_log common env=subapp2

Источник:

https://stackoverflow.com/questions/1460757/generate-access-logs -для-разные-подкаталоги-в-апашем

0
ответ дан 9 August 2018 в 01:35

Согласно этому сообщению https://stackoverflow.com/questions/10395043/apache-server-multiple-directories-different-errorloglog

Это не выполнимо для журнал ошибок, поскольку директива ErrorLog работает только в конфигурации сервера или виртуального хоста. Можно выделить AccessLog с функциями, предоставляемыми модулем setenvif.

В качестве альтернативы можно попробовать что-то вроде этого:

ErrorLog "|/usr/bin/tee -a ${APACHE_LOG_DIR}/error.log /var/www/apachelogs/error.txt"

Просто добавьте более сложную фильтрацию сценарий между ними, и вам удастся добиться того, что вам нужно.

Некоторое nitpicking, зачем вам нужен журнал ошибок в каталоге с кодом? Imho это угроза безопасности.

0
ответ дан 9 August 2018 в 01:35

Я считаю, что это то, что вы хотите:

SetEnvIf Request_URI ^/app/subapp1(/|$) subapp1
SetEnvIf Request_URI ^/app/subapp2(/|$) subapp2

CustomLog /absolute/path/to/app/subapp1/log/access_log common env=subapp1
CustomLog /absolute/path/to/app/subapp2/log/access_log common env=subapp2

Источник:

https://stackoverflow.com/questions/1460757/generate-access-logs -для-разные-подкаталоги-в-апашем

0
ответ дан 14 August 2018 в 19:43
  • 1
    Спасибо за ответ Джордж. Я уже пробовал это решение, он работает для access_logs, но не для error.logs. – harsha 31 August 2017 в 09:53
  • 2
    Даже когда вы редактируете имя в ErrorLog? – George Udosen 31 August 2017 в 09:56
  • 3
  • 4
    CustomLog /var/www/html/app1/error.log env = app1 ErrorLog /var/www/html/app1/error.log CustomLog /var/www/html/app2/error.log env = app2 ErrorLog / var / www /html/app2/error.log Вот как я отредактировал для error.log. Правильно ли это? – harsha 31 August 2017 в 10:05
  • 5
    Я даже попытался это сделать, я получил эту ошибку AH00526: Ошибка синтаксиса в строке 50 файла /etc/apache2/sites-enabled/000-default.conf: ErrorLog принимает один аргумент, имя файла журнала ошибок – harsha 31 August 2017 в 10:14

Согласно этому сообщению https://stackoverflow.com/questions/10395043/apache-server-multiple-directories-different-errorloglog

Это не выполнимо для журнал ошибок, поскольку директива ErrorLog работает только в конфигурации сервера или виртуального хоста. Можно выделить AccessLog с функциями, предоставляемыми модулем setenvif.

В качестве альтернативы можно попробовать что-то вроде этого:

ErrorLog "|/usr/bin/tee -a ${APACHE_LOG_DIR}/error.log /var/www/apachelogs/error.txt"

Просто добавьте более сложную фильтрацию сценарий между ними, и вам удастся добиться того, что вам нужно.

Некоторое nitpicking, зачем вам нужен журнал ошибок в каталоге с кодом? Imho это угроза безопасности.

0
ответ дан 14 August 2018 в 19:43
  • 1
    Спасибо mestia. Решение, которое вы предложили, я думаю, он не будет разделять журналы на основе каталогов. Нам это нужно, потому что каждый разработчик работает в разных каталогах (код). Они хотят знать, какая ошибка они получают особенно для кода, над которым они работают. – harsha 31 August 2017 в 10:12
  • 2
    В этом случае, я думаю, вы можете установить переменную с помощью setenvif и поместить эту переменную в файл журнала ошибок, отредактировав директиву журнала ошибок и добавив регистрацию% {VARNAME} e. это работает, просто фильтруйте соответствующие значения, прежде чем давать их разработчикам. – mestia 31 August 2017 в 10:28

Другие вопросы по тегам:

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