Генерация лог файлов 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,

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