我遇到的问题是访问和错误日志写在同一个文件中!virtualhosts.conf 中的配置如下:
<VirtualHost *:80>
ServerName ************
ServerAdmin support@************8
DocumentRoot /var/www/html/*********.com
ErrorLog /var/log/httpd/********/********.com_error_log
CustomLog /var/log/httpd/********/********.com_access_log combined
<Directory /var/www/html/***********.com>
Options -Indexes FollowSymLinks
AllowOverride All
</Directory>
</VirtualHost>
从配置中可以看出,每个访问和错误日志都应该单独保存,但两个日志都写在 *.com_access_log 中,我仔细检查了所有权限、组和所有者……没有发现任何错误
日志文件中的先前错误:
[Thu Sep 19 14:15:02 2013] [error] [client 192.168.10.54] client denied by server configuration: /var/www/html/**********/show_has_offers.php
我试图生成相同的错误,我只能在访问日志中找到以下内容:
192.168.10.75 - - [24/Oct/2013:08:11:14 +0000] "GET /show_has_offers.php HTTP/1.1" 404 1586 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0" 0 17332
错误日志中没有任何内容!
请指教 ...
答案1
您在上面的评论中举的例子是:
192.168.10.125 - - [15/Aug/2013:14:11:55 +0000] "POST /check-status/HTTP/1.1" 400 117 "-" "Apache-HttpClient/UN AVAILABLE (java 1.4)" 0 23314
首先:/check-status 是 Apache 用于查询 mod_status 的一个特殊 URL 别名。它通常不是您在 VirtualHost 上启用的别名。
这不是服务器端错误。这是客户端发出的 http 请求,服务器对此响应 400(格式错误的请求)。将指令设置Loglevel
为info
或,debug
看看是否可以获取有关它的详细信息。
这样做的标准方法是让 apache 只记录实际错误写入错误日志。每次客户端创建格式错误的请求或文件丢失 (404) 时都将错误写入错误日志,这违背了仔细查看错误日志的意义。