我有一台带有Apache的VPS服务器。我想执行简单的CGI脚本。我创建了一个python脚本,将其保存为.cgi文件并将其放置到文件夹cgi-bin中,但它只显示错误消息:"标题和#34之前的脚本输出结束。
但是,当我将此脚本保存为.py文件并且未将其放入cgi-bin文件夹时,它可以正常工作,但每当出现错误时,它都不显示任何错误消息,只是服务器错误。命令cgitb.enable()没有显示任何错误。
我试图给予文件755权限,但这仍然无法解决我的问题。
哪里可能有问题?
源代码:
#!/usr/local/bin/python3
print("Content-type:text/html")
print("")
print ("<html><head><title>CGI</title></head>")
print ("<body>")
print ("hello cgi")
print ("</body>")
print ("</html>")
感谢您的回答。
答案 0 :(得分:0)
使用sys.stdout.write
并添加\n
可能更有用,这样您就可以确切地知道写入标准输出的内容:
#!/usr/bin/env python
import sys
import os
sys.stdout.write('Status: 200 OK\n')
sys.stdout.write('Content-Type: text/html; charset=utf-8\n\n')
sys.stdout.write('<html><body>Hello, world!</body></html>\n')
sys.exit(os.EX_OK)
使用python script.py | cat -e
运行脚本,以便验证行结尾。
确保在开始发送内容后不再发送任何HTTP标头。