我想在.shtml
中执行Python CGI脚本
文件,但我不知道怎么做。我已经找到好几种方法了?,但似乎什么也没用。在那里,很难找到一个真正展示如何执行脚本而不是如何编写脚本的东西!;/
我的Html: http://pastebin.com/4sNZTZNQ
还有我的剧本: http://pastebin.com/w5vGXCBp
我对CGI和任何Webstuff都很陌生,但我已经用Python编程半年多了。
PS:很抱歉,代码格式混乱,我现在将它上载到pastebin:S
//编辑: 好吧,现在有更多的信息,因为它仍然不起作用。
从heliohost.org,我被引导到http://area52.heliohost.org/cgi-bin/snakecharmer.py,在那里您可以找到指向python解释器的路径。
这是我的文件夹结构:
-公共html
-.htaccess接口
-主.py
-索引.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文件系统打开它们。浏览器的地址行应如下所示:
如果通过文件系统打开一个文件,CGI将无法工作。例如,如果这在浏览器的位置栏中:
将脚本行尾转换为Unix格式: 大多数编辑器都有“显示行尾”的选项,然后有一个工具可以将Unix格式转换为PC格式。必须将行尾设置为Unix格式。
在CGI脚本的第一行说明Python解释器的路径: Python CGI脚本的第一行必须包含以下行之一:
顶行用于在PC上调试,底行用于1和1等服务器。我将这些行保留如图所示,然后在它们在服务器上运行后通过删除第一行来编辑它们。
在打印任何其他输出之前打印指定HTML的内容类型: 这可以通过在脚本的早期添加以下行来完成:
请注意,需要两行结尾。
设置Python脚本以提供调试信息: 导入以下内容以获取详细的调试信息。
如果cgitb不可用,另一种方法是:
在服务器上,必须将python脚本权限设置为执行。 上载文件后,请确保编辑第一行并设置文件的执行权限。
检查是否可以直接命中python脚本。如果不能,请按照上述步骤(2-6)进行修复。然后当Python脚本工作时,调试shtml。
使用
相反
否则python 3.+版本会有问题
相关问题 更多 >
编程相关推荐