Я придерживался этой проблемы, погуглил ее вокруг и получил некоторые решения, но вряд ли она не работает правильно. Может любой давать решение для этого,
Я выполняю Apache2 в машине Ubuntu 14.04. Имейте только один виртуальный хост, работающий в нем, и имейте корень документа под /var/www/html
где наш находится.
В каталоге HTML наш код содержит подкаталоги. Для, например, dir1, dir2. Мне нужен журнал ошибок, должен быть настроен как весь журнал ошибок, связанный с кодом под dir1, должен находиться внутри dir1 и то же для dir2.
Как я могу настроить журналы ошибок?
Я полагаю, что это - то, что Вы хотите:
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/10395043/apache-server-multiple-directories-different-error-logs
Это не выполнимо для ошибки log как директива ErrorLog работает только в конфигурации сервера или в контексте виртуального хоста. AccessLog можно разделить функциями, предоставляемыми модулем setenvif.
В качестве альтернативы можно попробовать что-то вроде этого:
ErrorLog "|/usr/bin/tee -a ${APACHE_LOG_DIR}/error.log /var/www/apachelogs/error.txt"
Просто поместите более сложный сценарий фильтрации между ними, и, возможно, вам удастся добиться того, что вам нужно.
Немного придирки, зачем вам журнал ошибок в каталоге с кодом? Имхо, это угроза безопасности.
Просто используйте в своем vhost
ErrorLog error.log
blockquote>, и он запишет файл ошибок в ту же папку, в которой находится находится скрипт, вызывающий ошибку.
Ошибка в
http://example.com/some/dir/test.php
blockquote>запишет ошибку в
/public_html/some/dir/error.log
blockquote>