簡體   English   中英

如何在我的服務器上運行python腳本?

[英]How to run python script on my server?

我有一個由Blueshot托管的服務器。 我一直在使用php從iPhone獲取發布變量......但是現在我必須使用python從iPhone獲取post變量。 我寫了這樣的東西

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是否可以在我的服務器上運行,如果不能,我怎么能在我的服務器上運行python腳本? 我想做的就是從iPhone獲取POST變量(我知道如何從iPhone發送變量)在此先感謝...

以下是CGI腳本不工作時需要檢查的小清單:

  • 它是在cgi-bin (或等效的)文件夾中嗎?
  • 它可執行嗎?
  • 它可讀嗎?
  • 它有一個hashbang嗎?
  • 您的服務器是否設置為處理CGI腳本?

這是一個可用於測試的示例CGI腳本:

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

將其命名為test.py ,將其放在cgi-bin某個位置,並確保它是可執行的:

$ chmod a+rx test.py

某些Web服務器只識別具有某些擴展名的CGI腳本,因此如果.py不起作用,您可能需要嘗試.cgi

這是一個Web服務器配置問題,而不是編程問題。

如果您正在運行Apache,這可能會起作用:


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

然后把它放在.htaccess文件中:


AddHandler cgi-script .cgi

如果由於沒有shell訪問權限而無法運行ln命令,則只需使用.cgi擴展名上傳即可。 或者,正如icktoofay所說,將它放在你的cgi-bin文件夾中,那么你也不需要.htaccess修改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM