我有一個CGI處理HTTP服務器下面最少的代碼,從幾個例子在內部管導出:Python的CGIHTTPServer默認目錄
#!/usr/bin/env python
import BaseHTTPServer
import CGIHTTPServer
import cgitb;
cgitb.enable() # Error reporting
server = BaseHTTPServer.HTTPServer
handler = CGIHTTPServer.CGIHTTPRequestHandler
server_address = ("", 8000)
handler.cgi_directories = [""]
httpd = server(server_address, handler)
httpd.serve_forever()
然而,當我執行腳本,並嘗試使用http://localhost:8000/test.py
通過CGI在同一目錄中運行測試腳本,我看到腳本的文本而不是執行結果。
權限全部設置正確,並且測試腳本本身不是問題(因爲我可以在腳本駐留在cgi-bin中時使用python -m CGIHTTPServer
正常運行)。我懷疑這個問題與默認的CGI目錄有關。
我怎樣才能讓腳本執行?
感謝您的回答!這幫助我整理了一個我一直想要做的很長時間的Python專用服務器。值得指出的是,規範的「正確的」shebang是「#!/ usr/bin/env python」 - 之前我已經被抓到了! – scubbo
@scubbo - 很高興與此鬥爭可以爲您提供一些清晰。我已經按照你的建議更新了shebang。謝謝! – charleslparker