linux下Apache配置日志文件,防止ErrorLog CustomLog日志过大
问题描述:
网站磁盘空间爆满,检查apache服务器,发现是apache的访问日志和错误日志过大导致的。
问题原由:
Apache默认安装下,志记录只有一个文件。如果我们在配置虚拟主机的时候,一般可能会配置ErrorLog CustomLog 记录。如果apache开启了日志文件以及错误日志功能,那么很可能apache的访问日志文件access.log和错误日志会在一段时间内变成一个几百兆甚至几G的文件,尤其大访问量的网站更是如此。如果文件过大首先会导致运维人员不好查看日志,甚至文件过大,会导致磁盘空间爆满,影响服务器的正常运行。
解决办法:
通过配置httpd.conf文件,我们可以实现按天记录日志或者按文件大小来记录日志。
在 Linux 下的设置例子如下,打开httpd.conf文件或者虚拟主机配置文件:
找到ErrorLog CustomLog 配置的地方(此处以虚拟主机的config文件举例)
ErrorLog logs/error.log
CustomLog logs/access.log common
修改为下面的代码
<VirtualHost *:80>
DocumentRoot /home/wwwroot/www.jsphp.net
ServerName jsphp.net
ServerAlias www.jsphp.net
DirectoryIndex index.php index.html
<Directory "/home/wwwroot/www.jsphp.net">
Options FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
ErrorLog "|/usr/apache/bin/rotatelogs /home/wwwlogs/wwwjsphpnet/error-%Y-%m-%d.log 86400"
CustomLog "|/usr/apache/bin/rotatelogs /home/wwwlogs/wwwjsphpnet/access-%Y-%m-%d.log 86400" common
</VirtualHost>
请看这2行代码
ErrorLog "|/usr/apache/bin/rotatelogs /home/wwwlogs/wwwjsphpnet/error-%Y-%m-%d.log 86400"
CustomLog "|/usr/apache/bin/rotatelogs /home/wwwlogs/wwwjsphpnet/access-%Y-%m-%d.log 86400"
上面二行代码的意思是每天生成一个 errorLog CustomLog 日志文件。
- 1、注意,因为我服务器上放了很多个网站,所以我加了个目录 wwwjsphpnet 。设置的时候,必须保证有此目录,apache不会自动新建目录所以,必须要保证目录存在,否则日志不会生成的。
- 2、上文中的86400为一天的秒数
- 3、rotatelogs 是apache服务器的一个服务,用来限制日志文件大小的。rotatelogs的位置一般在(apache安装目录/bin/目录下),配置时需要设置为你自己的路径。
- 4、重启Apache服务器。
补充1:
除了按天生成日志,我们还可以按文件大小来生成日志
# 限制错误日志文件为 10M
ErrorLog "|/usr/apache/bin/rotatelogs /home/wwwlogs/wwwjsphpnet/error-%Y-%m-%d.log 10M"
# 限制访问日志文件为 10M
CustomLog "|/usr/apache/bin/rotatelogs /home/wwwlogs/wwwjsphpnet/access-%Y-%m-%d.log 10M" common
Windows 主机的设置方法:
在 Windows 主机设置下的设置例子如下(路径请根据你的服务器设置修改):
第一步:删除 Apache2/logs/目录下的 error.log、access.log文件
第二步:打开 Apache 的 httpd.conf配置文件并找到下面两条配置
ErrorLog logs/error.log
CustomLog logs/access.log common
直接注释掉,换成下面的配置文件。
# 限制错误日志文件为 10M
ErrorLog “|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 10M”
# 每天生成一个错误日志文件
#ErrorLog “|bin/rotatelogs.exe -l logs/error-%Y-%m-%d.log 86400″
# 限制访问日志文件为 10M
CustomLog “|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 10M” common# 每天生成一个访问日志文件
#CustomLog “|bin/rotatelogs.exe -l logs/access-%Y-%m-%d.log 86400″ common
版权声明
本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。
评论