我想在.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解释器的路径.
这是我的文件夹结构:
- public_html - .htaccess - main.py - index.shtml
.htaccess的内容:
Options +ExecCGI
AddHandler cgi-script .py
Run Code Online (Sandbox Code Playgroud)
main.py的内容:
#! /usr/local/bin/python
print "Content-Type: text/html"
print
print "Hello World!"
Run Code Online (Sandbox Code Playgroud)
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/
Run Code Online (Sandbox Code Playgroud)
小智 7
这是我刚才写的东西.
有一些技巧可以让Python在CGI中工作.
始终通过Apache浏览页面.请注意,通过浏览器查看文件系统中的文件适用于html页面上的大多数内容,但不适用于CGI.要使脚本工作,必须通过htdocs文件系统打开它们.浏览器的地址行应如下所示:
\\127.0.0.1\index.html or
\\localhost\index.html
Run Code Online (Sandbox Code Playgroud)
如果通过文件系统打开文件,CGI将无法工作.例如,如果它位于浏览器的位置栏中:
c:\Apache\htdocs\index.html (or some other example location)
Run Code Online (Sandbox Code Playgroud)将脚本行的结尾转换为Unix格式:大多数编辑器都有"显示行尾"的选项,然后是从Unix转换为PC格式的工具.您必须将行的结尾设置为Unix格式.
在CGI脚本的第一行说明Python解释器的路径:您必须具有以下行之一作为Python CGI脚本的第一行:
#!C:\Python25\Python.exe
#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
在PC上进行调试时使用顶行,底部用于1and1等服务器.我留下如图所示的行,然后通过删除第一行在服务器上进行编辑.
在打印任何其他输出之前打印指定HTML的内容类型:这可以通过在脚本的早期某处添加以下行来完成:
print "Content-Type: text/html\n\n"
Run Code Online (Sandbox Code Playgroud)
请注意,需要2行结束.
设置Python脚本以提供调试信息:导入以下内容以获取详细的调试信息.
import cgitb; cgitb.enable()
Run Code Online (Sandbox Code Playgroud)
如果cgitb不可用,则替代方法是执行以下操作:
import sys
sys.stderr = sys.stdout
Run Code Online (Sandbox Code Playgroud)在服务器上,必须将python脚本权限设置为执行.上传文件后,请务必编辑第一行并设置要执行的文件的权限.
检查一下你是否可以直接点击python脚本.如果不能,请按照上述步骤(2-6)进行修复.然后当Python脚本工作时,调试shtml.
| 归档时间: |
|
| 查看次数: |
18249 次 |
| 最近记录: |