Apache 日志文件生成

Apache 日志文件生成

在我的服务器中,我发现/var/log/apache2/,日志是在access.log几天前生成的,但是是空的(对于访问日志和错误日志都是如此),这发生在我的服务器上配置的所有虚拟主机上,

到目前为止,所有新日志都已添加access.log.1,我需要将所有新日志添加到文件access.logError.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

of -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

相关内容