После обновления с 2.2.7 до Apache 2.4.9 кажется, что ведение журнала не работает должным образом. Регистрируются только события modsecurity и fcgid, но ничего от Apache, как ошибки, связанные с отсутствием файла. Проверяя журнал ошибок Apache, особенно после перезагрузки, я заметил следующее:
[Sun Jul 13 05:16:10.482003 2014] [log_config:warn] [pid 30283:tid 140001085970176] (32)Broken pipe: [client 125.166.227.47:26260] AH00646: Error writing to |/usr/local/cpanel/bin/splitlogs --main=server.mysite.com --suffix=-bytes_log
[Sun Jul 13 05:16:10.482047 2014] [log_config:warn] [pid 30283:tid 140001085970176] (32)Broken pipe: [client 125.166.227.47:26260] AH00646: Error writing to |/usr/local/cpanel/bin/splitlogs --main=server.mysite.com --mainout=/usr/local/apache/logs/access_log
Я понятия не имею, что означает «сломанная труба». Я включил ведение журнала по конвейеру (которое было включено до обновления Apache). Пытался отключить его, но получил то же самое, и ничего не зарегистрировано. Проверил файл httpd.conf в разделе журнала по сравнению со старым файлом conf, но, похоже, не нашел ничего другого:
<IfModule mod_log_config.c>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedvhost
LogFormat "%v %{%s}t %I .\n%v %{%s}t %O ." bytesvhost
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog "|/usr/local/cpanel/bin/splitlogs --main=server.mysite.com --suffix=-bytes_log" bytesvhost
CustomLog "|/usr/local/cpanel/bin/splitlogs --main=server.mysite.com --mainout=/usr/local/apache/logs/access_log" combinedvhost
</IfModule>
Я был бы признателен, если бы кто-нибудь мог пролить свет на это. Спасибо.
ОБНОВЛЕНИЕ: ошибка сломанного файла была устранена путем изменения perms на 777 для access_log и error_log. Однако основная проблема все еще сохраняется, поскольку ни одна из ошибок, связанных с Apache (404, 403 и т. Д.), Не регистрируется.
Хорошо, думаю, я понял это! И исправление заключалось в изменении в httpd.conf следующей директивы:
LogLevel warn
новое значение:
LogLevel info
По-видимому, значимость некоторых журналов ошибок была изменена в Apache 2.4.9, поэтому журналы ошибок, такие как 404, теперь находятся на информационном уровне, как описано здесь: http://httpd.apache.org/docs/current/mod/core.html#loglevel