2011-04-13 81 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

相關問題