在我的服务器中,我发现在 下/var/log/apache2/
,日志是access.log
几天前生成的,但是它们是空的(对于访问日志和错误日志),这种情况发生在我服务器上配置的所有虚拟主机上,
直到这一刻,所有新日志都已添加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)
在你的
/etc/logrotate.d/apache2
文件中你有:. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}
意味着它将首先获取文件/etc/apache2/envvars
,然后如果变量APACHE_PID_FILE
存在它将打印它的值,这将是一个包含 PID 的文件apache
,如果变量不存在它将默认为 value/var/run/apache2.pid
。-f
of (test
)[
命令表示检查PID是否存在,如果找到则运行:这将重新加载
apache
.在您的情况下,文件
/etc/init.d/apache2
丢失,因此apache
不会重新加载导致logrotate
在保存新日志/var/log/apache/access.log
和/var/log/apache/error.log
.