Win10 + Apache + mod_wsgi部署Django

  • 5331
  • 0

Win10 + Apache + mod_wsgi部署Django

記錄Windows上快速部署Django項目的過程,不適用于正式環境

1、環境

OS:Windows 10 企業版 2016 LTSB 64位

python-3.5.3-amd64.exe,安裝給所有人使用,自動添加系統變量,自動安裝pip

Django-1.10.6.tar.gz,以管理員權限開啟cmd,執行pip install \path\to\Django-1.10.6.tar.gz

2、Django項目

參考Django官方文檔Writing your first Django app系列,https://docs.djangoproject.com/en/1.10/intro/tutorial01/,按照文檔編寫第一個polls app或者其它自己的app,確認通過http://127.0.0.1:8000可以正常訪問項目

3、安裝Apache

安裝比較簡單,在Apache Lounge網站下載Win64適用的Apache,httpd-2.4.25-win64-VC14.zip,https://www.apachelounge.com/download/,解壓后將Apache24拷貝至C盤即可

4、安裝mod_wsgi

在Python Extension Packages for Windows網站下載適用的mod_wsgi,mod_wsgi‑4.5.15+ap24vc14‑cp35‑cp35m‑win_amd64.whl,http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi。然後同樣以管理員權限開啟cmd,執行pip install \path\to\mod_wsgi‑4.5.15+ap24vc14‑cp35‑cp35m‑win_amd64.whl。安裝完成后在Python目錄C:\Program Files\Python35\Scripts下會有mod_wsgi-express.exe文件。

執行mod_wsgi-express.exe module-config會出現以下結果:

LoadFile "c:/program files/python35/python35.dll"
LoadModule wsgi_module "c:/program files/python35/lib/site-packages/mod_wsgi/server/mod_wsgi.cp35-win_amd64.pyd"
WSGIPythonHome "c:/program files/python35"

其中第二行表示wsgi_module所在的位置,在後續配置httpd.conf載入wsgi module時需要。第三行在部署Django項目時需要

5、部署Django項目

參考Django官方文檔How to use Django with Apache and mod_wsgi基本配置,https://docs.djangoproject.com/en/1.10/howto/deployment/wsgi/modwsgi/

WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonHome /path/to/venv
WSGIPythonPath /path/to/mysite.com

<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

編輯C:\Apache24\conf\httpd.conf文件,修改添加以下內容:

Listen IP:80

LoadModule wsgi_module "c:\program files\python35\lib\site-packages\mod_wsgi\server\mod_wsgi.cp35-win_amd64.pyd"

WSGIScriptAlias / D:/djangoproject/mysite/mysite/wsgi.py
WSGIPythonHome "c:/program files/python35"
WSGIPythonPath D:/djangoproject/mysite

<Directory D:/djangoproject/mysite/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

然後在D:\djangoproject\mysite\mysite\settings.py中添加ALLOWED_HOSTS:

ALLOWED_HOSTS = ['IP']

執行httpd.exe即可訪問http://IP/servers查看Django項目,大功告成。