如何执行Python CGI脚本?

问题描述

| 我想在ѭ0中执行Python CGI脚本 文件,但是我不知道怎么做。我已经找到几种方法了,但是似乎什么也没有用。而且,要找到真正可以显示如何执行脚本而不是如何编写脚本的东西要困难得多! ; / 我的HTML: http://pastebin.com/4sNZTZNQ 而我的脚本: http://pastebin.com/w5vGXCBp 我对CGI和任何Webstuff还是很陌生,但是现在用Python进行编程已有半年以上的时间。 PS:很抱歉,代码的格式令人困惑,我现在将nit上传到pastebin:S //编辑: 好的,现在更多信息,因为它仍然无法正常工作。 从heliohost.org,我被定向到http://area52.heliohost.org/cgi-bin/snakecharmer.py,在这里您可以找到python解释器的路径。 这是我的文件夹结构: -public_html  -.htaccess  -main.py  -index.shtml .htaccess的内容:
Options +ExecCGI
AddHandler cgi-script .py
main.py的内容:
#! /usr/local/bin/python
print \"Content-Type: text/html\"
print

print \"Hello World!\"
index.shtml的内容: http://pastebin.com/Trg8sXBc 现在,单击链接,出现“ 500 InternalServerError \”,我不明白为什么。 :( 服务器错误日志只是这样说:
[Wed Jun 15 14:41:26 2011] [error] [client 84.151.252.129] File does not exist: /home/nux95/public_html/500.shtml,referer: http: niklasrosenstein.heliohost.org/
    

解决方法

        这是我前一段时间写的东西。 有一些技巧可以使Python在CGI中工作。 始终通过Apache浏览页面。 请注意,通过浏览器查看文件系统中的文件适用于html页面上的大多数内容,但不适用于CGI。为了使脚本起作用,必须通过htdocs文件系统将其打开。浏览器的地址行应如下所示:
\\\\127.0.0.1\\index.html or
\\\\localhost\\index.html
如果通过文件系统打开文件,则CGI将不起作用。例如在浏览器的位置栏中:
c:\\Apache\\htdocs\\index.html (or some other example location)
将脚本行尾转换为Unix格式: 大多数编辑器都有“显示行尾”选项,然后提供了从Unix转换为PC格式的工具。您必须将行尾设置为Unix格式。 在CGI脚本的第一行上声明Python解释器的路径: 您必须具有以下任一行作为Python CGI脚本的第一行:
#!C:\\Python25\\Python.exe
#!/usr/bin/python
当您在PC上进行调试时,最上面的一行使用,而最下面的一行用于1and1之类的服务器。我保留显示的行,然后在删除服务器上的第一行后对其进行编辑。 在打印任何其他输出之前,请打印指定HTML的内容类型: 只需在脚本的较早位置添加以下行即可完成此操作:
print \"Content-Type: text/html\\n\\n\"
请注意,必须有2行结尾。 设置Python脚本以提供调试信息: 导入以下内容以获得详细的调试信息。
import cgitb; cgitb.enable()
如果cgitb不可用,请执行以下操作:
import sys
sys.stderr = sys.stdout
在服务器上,必须将python脚本权限设置为执行。 上传文件后,请确保编辑第一行并设置文件执行权限。 检查是否可以直接打python脚本。如果不能,请按照上述步骤(2-6)进行修复。然后,当Python脚本运行时,调试shtml。     ,        采用
print(\"hello world\")
代替
print \"hello world\"
否则您将在python 3. +版本中遇到问题     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...