如何在我的服务器上运行python脚本?
我有一个由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发送变量)在此先感谢...
这里的东西一个小清单来检查时,CGI脚本不工作:
- 是它在一个
cgi-bin
(或同等学历)文件夹? - 它可执行吗?
- 它是否可读?
- 它有hashbang吗?
- 您的服务器是否设置为处理CGI脚本?
下面是一个示例CGI脚本,你可以使用测试:
#!/usr/bin/env python
import cgi; cgi.test()
它命名为test.py
,把它放在某处cgi-bin
,并确保它的可执行文件:
一些web服务器只识别具有特定扩展名的CGI脚本,因此如果.py
不起作用,则可能要尝试.cgi
。
这是一个web服务器配置问题,而不是编程问题。
如果你正在运行的Apache,这可能工作:
chmod 755 myscript.py
ln -s myscript.py myscript.cgi
然后把这个在您的.htaccess文件:
AddHandler cgi-script .cgi
如果您无法运行,因为没有了ln
命令shell访问,只需以.cgi扩展名开头即可。或者,正如icktoofay所说,把它放在你的cgi-bin文件夹中,那么你也不需要修改.htaccess。
那么如何更改配置? – codereviewanskquestions 2011-04-13 06:49:30
@icktoofay:我知道,我在打字,我很慢:^ \ – 2011-04-13 06:51:20
hashbang很重要,+1。我总是使用它,但不是每个人都这样做 – 2011-04-13 06:54:49