2011-04-13 84 views
4

我有一个由Blueshot托管的服务器。我一直在使用PHP从iPhone获取帖子变量......但是现在我必须使用python从iPhone获取帖子变量。我写了这样的事情如何在我的服务器上运行python脚本?

import cgi 
import cgitb; cgitb.enable() # for troubleshooting 

print "Content-type: text/html" 
print 

print """ 
<html> 

<head><title>Sample CGI Script</title></head> 

<body> 

    <h3> Sample CGI Script </h3> 
""" 

form = cgi.FieldStorage() 
message = form.getvalue("message", "(no message)") 

print """ 

    <p>Previous message: %s</p> 

    <p>form 

    <form method="post" action="index.cgi"> 
    <p>message: <input type="text" name="message"/></p> 
    </form> 

</body> 

</html> 
""" % message 

,并上传到我的服务器,但它不工作...如果我浏览网页那么它只是显示的源代码..我不知道要不要蟒蛇安装在我的服务器上(我相信Python可能会作为默认安装)..我如何检查是否可以在我的服务器上运行python,如果不是,我如何在我的服务器上运行python脚本?我想要做的就是从iPhone获取POST变量(我知道如何从iPhone发送变量)在此先感谢...

回答

10

这里的东西一个小清单来检查时,CGI脚本不工作:

  • 是它在一个cgi-bin(或同等学历)文件夹?
  • 它可执行吗?
  • 它是否可读?
  • 它有hashbang吗?
  • 您的服务器是否设置为处理CGI脚本?

下面是一个示例CGI脚本,你可以使用测试:

#!/usr/bin/env python 
import cgi; cgi.test() 

它命名为test.py,把它放在某处cgi-bin,并确保它的可执行文件:

​​

一些web服务器只识别具有特定扩展名的CGI脚本,因此如果.py不起作用,则可能要尝试.cgi

+0

hashbang很重要,+1。我总是使用它,但不是每个人都这样做 – 2011-04-13 06:54:49

0

这是一个web服务器配置问题,而不是编程问题。

如果你正在运行的Apache,这可能工作:


chmod 755 myscript.py 
ln -s myscript.py myscript.cgi 

然后把这个在您的.htaccess文件:


AddHandler cgi-script .cgi 

如果您无法运行,因为没有了ln命令shell访问,只需以.cgi扩展名开头即可。或者,正如icktoofay所说,把它放在你的cgi-bin文件夹中,那么你也不需要修改.htaccess。

+0

那么如何更改配置? – codereviewanskquestions 2011-04-13 06:49:30

+0

@icktoofay:我知道,我在打字,我很慢:^ \ – 2011-04-13 06:51:20

相关问题