10.1 安裝要讓APACHE擁有運行PYTHON的能力,我們必須在APACHE伺服器上,安裝上PYTHON,和MOD_PYTHON。
其中不同版本的MOD_PYTHON對於所支援的APACHE版本及PYTHON版本的是有嚴格限制的,
各位在下載時必須注意,並找到對應的版本,否則可能會出現問題。
下載完畢後,對MOD_PYTHON進行安裝即可。
10.2 配置在完成安裝後,我們就要對APACHE進行配置了, 請開啟APACHE的配置檔(httpd.conf),加入下列配置:
LoadModule python_module modules/mod_python.so ##請確定mod_python.so是否存在於APACHE目錄下的modules檔案夾中
<Directory "D:/Program Files/Apache Software Foundation/Apache2.2/htdocs/test">
##<Directory>中寫入要啟動並執行python指令碼所在的路徑,這設定將對子目錄有效
AllowOverride FileInfo ##必須加上,否則PY不能運行。
AddHandler mod_python .py ##說明在目錄下所有.py檔案都由MOD_PYTHON負責執行
SetHandler mod_python
PythonHandler test ##入口的PY名稱,在這例子,所有PY在運行時,都會先找到TEST.py中的handler函數作初始工作。
##嚴重注意:如果用戶端是使用POST方法傳送資料,則必須在handler中調用read()方法,否則POST資訊將被APACHE截取。
PythonHandler mod_python.publisher
##使用publisher後,用戶端就可調用某一.py中的某一函數,如Http://localhost/test/test1.py/hello?word='hi'
PythonDebug On ##將出錄資訊列印到APACHE的日誌中
</Directory>
附註:如果要在 apache + mod_python 中只運行 .pyo/.pyc 檔案則需要將配置修改如下:
入口(如本例的test222.py)需要保留 .py指令檔,否則將會找不到入口,
其他檔案可以用編譯後的.pyc/.pyo檔案
PythonOptimize On //這是引入python 的最佳化機制,並沒有影響
<Directory "D:/Program Files/Apache Software Foundation/Apache2.2/htdocs/test1">
AllowOverride All
PythonHandler test
PythonAuthzHandler test::handler //增加這句test::handler其中的handler是入口函數,
//中間的“::”按文檔說的:能提高效率
//如果有包或者是檔案夾的情況可以寫成 test1.test::handler
AddHandler mod_python .pyc
AddHandler mod_python .pyo
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
</Directory>