学会使用Apache错误日志

1 错误日志格式

    Apache 默认的错误日志配置如下:
    ErrorLog logs/error_log
    LogLevel warn
    配置错误日志相对简单,只要说明日志文件的存放路径和日志记录等级即可。格式为:
    日期和时间 错误等级 错误消息

    2 日志记录等级

    下面着重说说日志记录等级,包括八个级别。
    1 级英文名称emerg ,出现紧急情况使得该系统不可用,如系统宕机等
    2 级alert 英文名称,需要立即引起注意的情况
    3 级 英文名称crit ,危险情况的警告
    4级 英文名称error ,除了emerg 、alert、crit 的其他错误
    5级英文名称 warn。 警告信息
    6级英文名称 notice ,需要引起注意的情况,但不如error、warn 重要
    7级英文名称 info ,值得报告的一般消息
    8级英文名称 debug, 由运行于debug 模式的程序所产生的消息

    错误日志文件举例

    错误日志的格式相对灵活,并可以附加文字描述。某些信息会出现在绝大多数记录中,一个典型的例子是:

    [Wed Oct 11 14:32:52 2007] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test
其中,第一项是错误发生的日期和时间;第二项是错误的严重性,LogLevel指令使只有高于指定严重性级别的错误才会被记录;第三项是导致错误的IP地址;此后是信息本身,在此例中,服务器拒绝了这个客户的访问。服务器在记录被访问文件时,用的是文件系统路径,而不是Web路径。错误日志中会包含类似上述例子的多种类型的信息。此外,CGI脚本中任何输出到stderr的信息会作为调试信息原封不动地记录到错误日志中。用户可以增加或删除错误日志的项。但是对某些特殊请求,在访问日志(access log)中也会有相应的记录,比如上述例子在访问日志中也会有相应的记录,其状态码是403,因为访问日志也可以定制,所以可以从访问日志中得到错误事件的更多信息。

    了解错误代码和错误提示

 常用的错误响应代码如下:
    301 :告知用户请求的URL 已经永久的移动到新的URL,用户可以记住新的URL,以便日后直接使用新的URL 进行访问。
    302 :告知用户请求的URL 临时的移动到新的URL,用户无需记住新的URL,如果省略错误响应代码,默认就是此值。
    303 :告知用户页面已经被替换,用户应该记住新的URL。
    401 :授权失败,即密码错误。
    403 :Access denied 存取错误,即不可以读取该文件。
    404 :File not found 找不到文件。
    410 :告知用户请求的页面已经不再存在,使用此代码时不应该使用重定向的URL 参数。
    500 :服务器内部错误,可能是Web服务器本身存在问题,也可能是编写的程序出错。


 错误消息提示说明

    “Invalid argument: core_output_filter: writing data to the network” 消息

    Apache在可能的平台上使用系统调用sendfile来加速响应的发送。不幸的是,在某些系统上,Apache会在编译时检测sendfile的存在,即使它不能正常工作。这经常发生在使用网络或其他非标准文件系统时。这个问题的表现症状包括上述信息出现在错误日志里及对于非零长度文件请求发送零长度的响应。一般这个问题只发生在静态文件上,因为动态文件通常用不到sendfile 。要修正这个问题,可用EnableSendfile指令关闭服务器所有部分对sendfile的使用即可。同时参看EnableMMAP指令,对相似的问题有帮助。

    “Premature end of script headers” 消息

    大多数导致这个错误的CGI脚本问题将会向浏览器发送一个"Internal Server Error"错误信息。

    “Permission denied” 消息

    error_log中的"Permission denied"错误伴随一个发送到客户端的"Forbidden"信息通常表明违反了文件系统的权限,而不是Apache HTTP的配置文件出了错误。检查并确认用于运行子进程的User和Group有访问导致问题的文件的足够权限。同时检查一下导致问题的文件所在的目录及其所有父目录是否具有执行(搜索)权限(也就是 chmod +x)。最近发行的 Fedora Core 和其它Linux发行版使用了SELinux进行额外的访问控制,违反这些限制也会导致"Permission denied"消息。

    "POST Method Not Allowed"消息

    这说明Apache没有被正确配置以执行CGI程序,重新阅读配置Apache看看遗漏了什么。

    "Internal Server Error"消息

    查阅Apache错误日志,可以找到CGI程序产生的出错消息"Premature end of script headers"。对此,需要检查下列各项,以找出不能产生正确HTTP头的原因。


转载自: http://server.it168.com/server/2007-08-09/200708090716275_1.shtml


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值