在做Leobbsx论坛转换时,因为需要,上传了upattach.cgi的文件到论坛目录下,准备运行,结果在网址中输入时却一直无法解析成正常页面,直接就出错了。去查了下权限,又是正常的,将SElinux暂时关闭(setenforce 0) 也是没有效果。 本文来自Novell迷网站 http://novell.me
于是来查看apache的日志,如果日志量较大可以通过 cat ./xxx/log | grep upattach.cgi 的方式来查看包含 upattach.cgi 文字的出错信息。
本文来自Novell迷网站 http://novell.me
经查,发现是
[Tue Nov 13 11:39:48 2007] [error] [client 111.111.111.111] (2)No such file or directory: exec of '/var/www/cgi-bin/myProgramm/bin/upattach.pl' failed
[Tue Nov 13 11:39:48 2007] [error] [client 111.111.111.111] Premature end of script headers: upattach.pl
网络初步搜索了下,得到一个比较全面的解决办法总结的,大概有如下几种情况:
它的错误信息,若是:
1:directory is writable by others:dirname 说明相关的目录的权限太大了,应从777改为775.
2:file is writable by others: finename 说明该文件应改为不可写,如从666改为755
3:file has no execute permission: filename 说明该文件没法运行, 应改为755
4:No such file or directory: exec of 这个错误一般是文件格式造成的,我就是如此,可以通过
file filename.cgi查看文件系统的文件格式,如果格式有问题,或者文件有问题,就会给出提示。
本文引用自Novell迷网站
另外还有一个情况是 cgi 文件头部的 perl 的路径设置问题,Linux和Windows是不同的,这里也要注意下,但我都排查过了,问题依旧。
最终还是Google到了我的解决办法。如下: 内容来自Novell迷网站
在文件的头部显示的 http://novell.me
- #!/usr/bin/perl
CopyRight http://novell.me
更改添加一个 -w 参数,即
Novell迷网站原创内容,未经允许,谢绝转载!
http://novell.me
- #!/usr/bin/perl -w
再运行一下,就OK了!你呢?赶快试试去!
本文地址 http://novell.me/master-diary/2010-03-14/Premature-end-of-script-headers.html
(责任编辑:Novell迷)