最近開發了一個 Google Analytics 相關的應用,但需要在 Windows 下部署,結合網上的相關經驗,最終選擇了 apache+mod_wsgi 這樣的配置。
修改python應用
代碼如下: Note that mod_wsgi requires that the WSGI application entry point be called 'application'. If you want to call it something else then you would need to configure mod_wsgi explicitly to use the other name.
(via: wiki)
因為 mod_wsgi 默認要求入口名稱為 application 所以我們需要對自己的 python web 應用做一些修改。
假設我們使用flask 搭建的應用,而默認的入口名稱為 app, 建立一個 wsgi_handler.wsgi
import sys, ossys.path.insert(0, os.path.dirname(__file__)) from application import app as application
下載安裝 httpd
應用的入口修改好之后,就需要安裝 apache 和 mod_wsgi 了,我使用的是32位的系統,64位系統下載的安裝包可能 與32位的不同。
打開頁面 http://apache.dataguru.cn//httpd/binaries/win32/,下載 httpd-2.2.22-win32-x86-no_ssl.msi, 下載后運行程序,按提示安裝,具體過程這里不詳述。
安裝并配置 mod_wsgi
目前 Windows 下對 python 支持的最好的應該就是 [mod_wsgi][mw] 了。
下載 https://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py27-3.3.so
將下載的文件重命名為 mod_wsgi.so 后移動到 apache 的 modules 目錄:
在 conf/httpd.conf 中加入如下配置
代碼如下:LoadModule wsgi_module modules/mod_wsgi.so
配置應用 vhost
在 conf/httpd.conf 中啟用 vhosts 配置文件
代碼如下:# Virtual hosts
Include conf/extra/httpd-vhosts.conf
編輯 conf/extra/httpd-vhosts.conf 刪除無效的示例代碼,并加入應用的配置
代碼如下:NameVirtualHost *:5000
<VirtualHost *:5000>
ServerName localhost
WSGIScriptAlias / E:/Projects/ga-data/wsgi_handler.wsgi
<Directory E:/Projects/ga-data>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
其中 E:/Projects/ga-data 替換成應用真實的路徑,盡量避免將應用放在中文或者有包含空格的路徑中
接下來啟動 Apache 并訪問 http://localhost:5000 即可。
新聞熱點
疑難解答