LNAMP和LNMP服务器环境中如何关闭日志

使用独立主机或者云主机或者VPS经常遇到的一个问题就是由于硬盘空间占满而导致的各种故障,而导致硬盘占满绝大多数时候是由于日志,本文详细总结了LNMP和LNAMP中所有服务的日志相关的配置。

Apache
错误日志
在httpd.conf添加
ErrorLog off
无此指令默认生成日志。

访问日志
删除或者注释CustomLog指令,无此指令默认不生成日志。

apache用#注释

Nginx
错误日志
http段添加
error_log off
仍会生成error.log,但是空的

访问日志
http段添加
access_log off
之后虚拟主机默认不生成日志,但仍可通过在server段添加access_log指令来启用部分网站的访问日志。

nginx用#注释

MySQL
慢查询日志
注释或者删除my.cnf中的log-slow-queries指令,无此指令默认不生成日志。

二进制bin-log日志
注释或者删除my.cnf中的log-bin指令,无此指令默认不生成日志。

错误日志
log-error=/dev/null,无此指令默认生成日志。
(所有的日志都可以指向到/dev/null来给变相禁止掉,但是这是一种很挫的方式,其他的日志指令都提供了禁止的参数,但是这条配置我找了半天没有找到,很可能是没有)

MySQL用;或#注释配置

php-fpm
如果php-fpm没有配置日志相关的指令,所有的日志默认都不生成。配置文件一般为php-fpm.conf。
慢执行日志
slowlog

访问日志
access.log

错误日志
error_log

php-fpm用;注释配置

日志在有些时候是很有用的,比如访问日志可以用来分析WEBSHELL和黑客入侵和蜘蛛抓取情况,错误日志可以用来分析服务启动失败的原因,慢查询和慢执行日志可以用来优化程序,ETC。
但是有些情况是不得不考虑的,一是受硬盘空间的限制,二是对于很多用户还没有能力来分析日志(开了日志也用不到)。
除非可以确定日志是能用得到的,并且硬盘空间允许,否则建议关闭日志,以避免各种意想不到的突如其来的麻烦。
很多日志都可以在需要查看的时候再开启,比如MySQL启动不了的时候可以把它的error_log打开。

PS,可以利用cron制定自动清除日志,具体形式有很多种,也很复杂,本文不做叙述。