在Windows伺服器下用Apache和mod_wsgi配置Python應用的教程

來源:互聯網
上載者:User
最近開發了一個 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

ServerName localhost
WSGIScriptAlias / E:\Projects\ga-data\wsgi_handler.wsgi

Order deny,allow
Allow from all

其中 E:\Projects\ga-data 替換成應用真實的路徑,盡量避免將應用放在中文或者有包含空格的路徑中

接下來啟動 Apache 並訪問 http://localhost:5000 即可。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.