apache错误日志'Premature end of script headers'的可能原因记录

最近调试apache CGI的时候遇到好多次Premature end of script headers的问题,这里记录下来以供以后的自己参考

1、CGI权限不够

apache服务器不是以你的用户身份运行的,就是说,在服务器启动后,拥有的是一个非特权用户的权限-通常是nobody或者www,但有的时候CGI文件的执行需要足够的用户权限。通常,给予nobody足够的权限以执行文件的方法是,对文件赋予everyone execute权限,命令:

chmod a+x first.pl

另外,如果需要对其他文件进行读取或写入,也必须对这些文件赋予正确的权限。

2、CGI本身的代码bug导致cgi异常退出

CGI的代码bug,譬如core dump或者so找不到等原因

如果是coredump可以通过命令如下几个命令来定位:

a、coredump时是否会产生core文件

ulimit -c

如果是0则代表则不会生成,需要设置一下值

b、查看core文件相关配置信息

sysctl -a | grep core

打印输出

kernel.core_pattern = /data/corefile/core-%e-%p-%t
kernel.core_pipe_limit = 0
kernel.core_uses_pid = 1
net.core.bpf_jit_enable = 0
net.core.dev_weight = 64
net.core.message_burst = 10
net.core.message_cost = 5
net.core.netdev_budget = 300
net.core.netdev_max_backlog = 1000
net.core.netdev_pagefrag_enabled = 1
net.core.netdev_tstamp_prequeue = 1
net.core.optmem_max = 20480
net.core.rmem_default = 229376
net.core.rmem_max = 229376
net.core.rps_sock_flow_entries = 0
net.core.somaxconn = 128
net.core.warnings = 1
net.core.wmem_default = 229376
net.core.wmem_max = 229376
net.core.xfrm_acq_expires = 30
net.core.xfrm_aevent_etime = 10
net.core.xfrm_aevent_rseqth = 2
net.core.xfrm_larval_drop = 1

c、查看生成的core文件格式

cat /proc/sys/kernel/core_pattern

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值