cgi出现500错误 ,是由于 HTTP表头不对
gi的通信依靠stdout与浏览器通信。所以简单地在py-cgi-index.py里面写:
#!/usr/bin/env python
print 'hello world'
这样写是不对的。
cgi接口规定,cgi脚本输出的开头应该是http header。
而hello world这种字符无法被识别为任何有效的http header,
所以如果访问http://localhost/python-cgi,会返回500错误。
解决办法有两个:
1、写上http header。
header与body之间必须有一个空行,以识别前面的是header,后面的是body。
代码改成:
#!/usr/bin/env python
print 'Content-Type: text/html\n\nhello world'
2、空白http header。
不写http header的情况下,apache会自动补上header。
代码改成:
#!/usr/bin/env python
print '\nhello world'
cgi要读写文件,注意一定要将该文件权限设置为666,即全部可写。