apache2 日志文件太大的解决方案
1,为啥要控制apache的日志文件?
apache下有个日志文件叫error.log会记录运行过程中的错误,还有个access.log会记录谁访问了你的网站,每一次访问都对应者一条访问记录,也是绝了!
apache日志的目录:
windows:ur installation path/xampp/apache/logs
ubuntu(apache2):/var/logs/apache2
2,解决方案1:不记录访问详情,只记录错误日志
windows:
1),关闭apache,打开httpd.conf,
2),找到CustomLog "logs/access.log" common一行,注释掉。效果是,开启apahce的时候虽然创建了access.log文件,但是用户访问你网站的时候不会记录任何一条记录。亲测有效。
3),找到ErrorLog "logs/error.log"一行,如果你不想看到任何apache的错误日志,这个也可以注掉,因为error不常有,所以未经过亲测。个人还觉得留个错误日志比较不错,所以,在其下的一行LogLevel 由warn改为了crit。写出log日志的级别由warn上升到了crit。
4),重启apache,ok了。
优点是:配置方便,用的是apache配置文件修改设置,没有给系统增加负担。
缺点是:没有详细的用户访问你网站的记录,日后万一有问题,没法排查。
ubuntu:
ubuntu上目前常用的版本是apache2,和apache差很多,配置起来简直不要太复杂啊喂。头疼。
1),关闭apache2,sudo service apache2 stop。
2),关闭access.log的配置文件:/etc/apache2/sites-available/000-default.conf,里面有一行CustomLog ${APACHE_LOG_DIR}/access.log combined,直接注掉。
3),修改error.log,首先找到apache2.conf的这一行:ErrorLog ${APACHE_LOG_DIR}/error.log,不想看到任何errorlog可以直接注掉,但是我建议保留,同样的操作,保留了这一行然后修改了其下的LogLevel改为了crit。
4),还有个操作就是把other_vhosts_access.log给关了,这是个啥咱也不知道,就知道和虚拟主机相关。修改文件:/etc/apache2/conf-enabled/other-vhosts-access-log.conf,注掉其中的唯一一行:CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined
5),重启apache2,ok了。日志目录中你将会看到,只剩下了error.log
那么还有最后一个问题,尽管error.log写出的内容不大,数量不多,但是日积月累也有可能导致硬盘不够写,那办呢?最好是把清理apache的log文件放到开机启动中,但是要注意,必须放在apache启动之前,所以本人暂时未进行测试。
不得不说一句,ubuntu中有个命令可以搜索某个目录下所有文件中,带有某个字符串的文件并且打印出来,这就很灵性了,这样查找某个配置就很容易了,就像下面的命令一样:
sudo find /etc/apache2 -name ‘*.conf‘|xargs grep ‘access.log‘ #在/etc/apache2目录中查找后缀是conf的 文件,从以上找出来的文件中查找文件内容带有‘assess.log’的文件