2013-12-12 91 views
0

據我所知,在web服務器上運行Python腳本的一種方法是定義cgi-bin目錄,然後在那裏放置我的script.cgi。這可能會導致類似http://example.com/cgi-big/script.cgi在其他位置從cgi-bin運行python腳本

但是如果我需要從不同位置調用該腳本,該怎麼辦?我的意思是,假設這個腳本的目的是生成一個網頁,我希望這個頁面可以在http://example.com/the/other/cute/location/上訪問。那麼我應該如何採取行動?

通過的index.html使用SSI的唯一途徑,其中包括這樣的事情:

<!--#exec cmd="../../../script.cgi" -->

還是有什麼其他的解決方案?

回答

1

有很多方法可以在任何你喜歡的位置運行你的腳本;大多數情況下這是通過您的Web服務器配置完成我假設你使用的是Apache,但是也有辦法在其他Web服務器上完成所有這些事情。關鍵指令看起來像:

選項ExecCGI SetHandler CGI腳本

對於您正在試圖做modpython也什麼聲音是什麼你感興趣的一個簡單的解決方案有通過這個閱讀: http://modpython.org/python10/

點是 - 你可以配置一個apachehandler監聽特定目錄或特定文件類型(或兩者)的請求,並讓他們得到處理modpython。

如果您更感興趣的劇本被視爲傳統的CGI這仍是一個選項,在這裏相當有據可查: http://httpd.apache.org/docs/2.0/howto/cgi.html 同樣給你掃描如何指定modpython apachehandler合作,開發基於文件類型或位置你可以爲cgi處理程序(或者perl或php)做同樣的事情 - 你可以看到爲什麼這些東西是模塊化的。

...的完整性,我還要指出WSGI,而它仍然新變化可能是更接近於在未來的東西方向,當涉及到基於服務器的腳本: http://en.wikipedia.org/wiki/Web_Server_Gateway_Interface WSGI是怎麼回事似乎很難讓你的頭腦最初,我會開始與前兩個選項之一。

我很自信我沒有涵蓋你可以在網絡服務器上運行python的所有方法......但我想我已經把你關閉到你想知道的東西。

0

嗯,這是其中一個的方式運行Python腳本,但不是很好很好的方式。在Web服務器上運行Python腳本有很多更好的方法,其中最好的是通過WSGI運行的(微)框架。

要回答您的問題,您可以在Apache配置中使用Alias指令將您的URL映射到您的腳本位置。還請注意cgi-bin目錄沒有什麼神奇之處:只要您在該目錄的Options指令中設置ExecCGI標誌(和AddHandler),任何目錄均可用於可執行腳本。