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項目,大功告成。