У меня около 10 VirtualHosts, и я предпочитаю разделять error_logs. Недавно мне нужно было объединить все error_logs для некоторого сканирования mod_security.
Если я определяю 2 журнала ошибок для тестового VirtualDomain, я замечаю, что ошибки не регистрируются. Довольно странно.
Возможно ли, чтобы CustomLog играл роль ErrorLog?
Или я неправильно определяю свои 2 журнала ошибок?
<VirtualHost 1.2.3.4:80>
ServerName mydomain.net
ServerAlias www.mydomain.net mydomain.net
DocumentRoot /var/www/html/mydomain
ServerAdmin not@available.com
UseCanonicalName Off
ErrorLog logs/mydomain.net-error_log
ErrorLog logs/unified_modsecurity-error_log
CustomLog logs/mydomain.net-access_log combined
UserDir disabled
UserDir enabled mydomainuser
</VirtualHost>
Нет, невозможно иметь две директивы ErrorLog на VirtualHost. Однако вы можете использовать способность Apache передавать команду по конвейеру, чтобы вести журнал в два (или более) файлах с помощью команды UNIX 'tee':
ErrorLog "| / usr / bin / tee -a /var/log/apache/error-1.log /var/log/apache/error-2.log"
Согласно Документация по журналам Apache 2.4:
По умолчанию конвейерный процесс журнала запускается без вызова оболочки. Используйте "| $" вместо "|" для создания с помощью оболочки (обычно с / bin / sh -c):
Это было поведение по умолчанию для Apache 2.2.
Пример:
# Write to files error-1.log and error-2.log, and echo to stdout
CustomLog "|$/usr/bin/tee -a /var/log/apache/error-1.log /var/log/apache/error-2.log"
Еще одна проблема, с которой я столкнулся:
"|$ ...
действует. " |$ ...
не является.