Генерация лог файлов Apache
На моем сервере я нашел под /var/log/apache2/
, журналы создаются как access.log
несколько дней назад, но пустые (как для доступа, так и для журналов ошибок), это происходит для всех vhosts, настроенных на моем сервере,
И все новые журналы были добавлены в access.log.1
до этого момента мне нужно добавить все новые журналы access.log
и к Error.log
файлы.
Как решить эту проблему?
/etc/logrotate.d/apache2
следующим образом:
/var/log/apache2/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 644 root adm
sharedscripts
postrotate
if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
/etc/init.d/apache2 reload > /dev/null
fi
endscript
}
Редактирование: Я только что обнаружил, что файл /etc/init.d/apache2 пустовал несколько дней назад, я не знаю как!!, есть ли способ восстановить его? моя версия apache: Apache/2.2.12 (Ubuntu)
1 ответ
В вашем /etc/logrotate.d/apache2
файл у вас есть:
if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
/etc/init.d/apache2 reload > /dev/null
fi
. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}
означает, что он будет первым источником файла /etc/apache2/envvars
тогда, если переменная APACHE_PID_FILE
существует, он напечатает его значение, которое будет файлом, содержащим PID apache
, если переменная не существует, она по умолчанию будет иметь значение /var/run/apache2.pid
,
-f
из test
([
) указывает на наличие PID, если он найден, затем выполните:
/etc/init.d/apache2 reload > /dev/null
Который перезагрузит конфигурацию apache
,
В твоем случае файл /etc/init.d/apache2
отсутствует, следовательно apache
не перезагружать конфигурации, ведущие к неправильному поведению logrotate
в сохранении новых логов в /var/log/apache/access.log
а также /var/log/apache/error.log
,