由于這個解決方案要通過安裝Apache模塊mod_python來實現,而mod_python的當前版本3.3.1只支持Apache 2.2和Python 2.5,所以不得不先缷載已經裝好的Python 3.0,重新下載安裝了Python 2.5。mod_python是一個Apache模塊,它可以將Python解釋器嵌入到Apache服務器中(詳情可以看這里)。
讓Apache支持Python的過程很簡單,只要3步。
- 下載mod_python模塊安裝程序(注意文件名后面Python和Apache的版本號要與自己已經安裝的版本一致;文件名前面的版本號則是mod_python的,文件名示例:mod_python-3.3.1.win32-py2.5-Apache2.2.exe),然后安裝,安裝向導會自動找到Python路徑,但可能需要我們手工指定Apache路徑,安裝到最后,向導還會提示你如何修改Apache配置文件(參見下一步)并給出了后續步驟的英文說明。
- 讓Apache加載mod_python模塊。在Apache安裝目錄下找到其配置文件apache\conf\httpd.conf,打開,搜“LoadModule”,找到加載模塊的地方,然后添加一條語句:LoadModule python_module modules/mod_python.so,重新啟動Apache。
- 在htdocs目錄下新建一個目錄,如:“py”。進入py目錄,新建一個文本文件,并命名為“.htaccess”,加入下列3條指令:
AddHandler mod_python .py
PythonHandler mptest
PythonDebug On
這里第一條指令是將所有URL末尾為.py的請求轉發給mod_python處理程序,mod_python接收到請求之后再尋找適當的PythonHandler處理程序。第二條指令只定義了一個mptest處理程序。最后一條是啟用Python代碼調試功能,以便在代碼運行出錯時輸出Python解釋器返回的錯誤。
完成以上3步之后,就可以編寫Python文件并進行測試了。在py目錄下新建 mptest.py 文件,打開后添加如下代碼:
from mod_python import apache
def handler(req):
req.content_type = 'text/plain'
req.write("Hello World!")
return apache.OK
保存。打開瀏覽器,輸入http://localhost/py/mptest.py,回車。看到“Hello World!”了嗎?
實際上,由于前面只明確將mptest設置為處理程序,所以無論瀏覽器URL中的.py文件名是什么(如:login.py、default.py),都將被轉發給mptest.py文件來處理,都會返回“Hello World!”。怎么辦呢?長話短說,可以將上面第3步中的代碼替換成如下所示:
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
歡迎轉載:http://www.kanwencang.com/bangong/20161212/66500.html
文章列表
留言列表