Premature end of script headers 错误的终极处理方法
来源:互联网 发布:克洛诺斯岛数据芯片 编辑:程序博客网 时间:2024/05/22 16:10
在之前的文章里面有提到过,写的cgi程序在后台服务器运行没有问题,如果使用前台URL调用,就会时不时的报出“internal server error”,查看apache的错误日志,会发现“Premature end of script headers”错误。关于这个错误在之前的文章里面也提到过。主要是三方面的原因:
1.在输出cgi头之前,有文本输出。
2.cgi程序中的路径错误
3.cgi的访问权限。
根据这三点一一排查,均没有发现问题。奇怪的是cgi程序有时候能从前台url访问,有时候报错。cgi的程序权限也是755,是可以访问的。
仔细的想了想之后发现,问题其实在这里:cgi程序里面其实有些操作是创建文本并访问文本的。
例如:
fd = fopen("xxx.txt","w");
这时候创建出的文本文件使用权限实际上是随机分配的(从网上看到的,不是很确定)。当cgi在后台执行时,由于是用户是root用户,权限最大,在程序执行过程中不会遇到权限问题。当在前台url执行cgi时,虽然cgi程序的权限是755,程序能够被调用。但是程序在运行中创建的文本不确定其权限能否被前台的用户级别调用,因此就会出现在url调用时报错。
解决的方法如下:
在程序每次创建一个文件时,对这个文件的访问权限进行设置,使前台也能够具有访问权限(具体的读写权限根据自身需要设定)例如:
fd = fopen("xxx.txt","w");
chmod("xxx.txt",511);
511是十进制数,对应的八进制数为777,该值表示所有用户对该文件都具有读、写、执行权限。
这样设置之后,就不会再出现cgi在服务器正常执行,url调用报错的问题。其实这个问题解决起来很简单,但是就是很隐蔽,一般不容易发现。下次在写cgi程序的时候对访问权限的问题应该更加关注些。
- Premature end of script headers 错误的终极处理方法
- Premature end of script headers 错误的终极处理方法 (CGI的相关程序)
- Premature end of script headers: test-cgi 错误
- 产生perl CGI错误"Premature end of script headers"的可能原因
- 解决Premature end of script headers
- apache+wsgi+python: Premature end of script headers: mytest.py
- python脚本放到linux的cgi-bin下出现Premature end of script headers问题
- premature end of file错误
- Premature end of file 错误解决
- Premature end of file
- Premature end of file
- SAXParseException : Premature end of file
- DOM4J:Premature end of file
- Premature end of JPEG file
- premature end of file web service之类的问题解决
- dom4j解决Premature end of file
- 解决SAXParseException: Premature end of file
- xml中的Premature end of file
- 深度剖析搜索引擎
- 《c++必知必会》学习心得——day2
- USB设备分类
- SQL*Plus学习笔记(二)
- Android中实现应用程序的国际化与本地化
- Premature end of script headers 错误的终极处理方法
- 解决unix网络编程(第三版)第一个程序connect dennied.问题&Open 'daytiime' service
- MFC 将消息注入到外部应用程序地址空间中
- 【计算机系统学习-信息表示和处理】【二、整数表示】
- 解决linux下打开及解压文件后产生乱码的问题
- 执行文件的减肥工具strip
- Linux下的Dbgview
- 最近ASP.NET WAP开发的一些情况
- 微软是不是疯了,WINDOWS PHONE 7居然不支持这些功能!!!