2012-03-01 65 views
0

我已經安裝了lighthhtpd服務器來執行php和python文件......但是當我運行一個.py文件時,它會彈出一個下載窗口到該文件。從lighhttpd訪問python文件

這裏是我把已經在CGI的conf文件

cgi.assign     = (".py" => "/usr/bin/python2.6", 
          ".php" => "/usr/bin/php-cgi") 

任何人都知道怎麼做才能解決這個問題有Python文件上lighthttpd工作?

謝謝。

+0

我很長一段時間沒有使用lighttpd,但我認爲嫌疑人可能是錯誤的元類型,無法解釋,因此下載。它應該是HTML和PHP的'text/html',但不要問我該怎麼做......我徘徊到nginx。 – Paul 2012-03-01 12:25:50

+0

你的.py文件對lighthhtpd進程有執行權限嗎? – SpliFF 2012-03-01 12:28:59

+0

是的,他們有權限 – dyoser 2012-03-01 12:45:29

回答

1

嘗試將.py文件放在cgi-bin目錄中,然後從那裏運行它們。如果我沒有記錯,lighttpd配置只允許cgi-bin目錄中的cgi腳本。如果可能,請張貼您的整個cgi.conf

如果有效,請找到類似$HTTP["url"] =~ "^/cgi-bin" { (...) }的代碼段並移除周圍的匹配塊。

當您立即下載文件時,裏面有什麼?它是那裏Python腳本的實際來源,還是文本中預期的執行輸出?我猜這是更早的,如果不是,請澄清。

+0

是的,lighttpd在cgi目錄中工作...並且cgi.conf沒有比上面更多的特殊行。謝謝。 – dyoser 2012-03-02 09:33:43

1

感謝您的意見和答案...的解決方案是在第一線插入下面的命令:

print ("Content-Type: text/plain;charset=utf-8 \n") 

我使用Python 3.1的光......當我設置第一行中腳本將其正確打印出來。

+0

這對我有用。雖然我發誓我得到了python/lighttpd以前的工作,而不必這樣做。 – LoveMeSomeCode 2014-03-20 00:01:27