在Windows环境下部署Django项目真的非常的麻烦,我自己查过很多教程,有很多都是半途而废了,最后咬着牙把Apache+mod_wsgi这个部署方案算是基本搞定。作为菜鸟满满的成就感。就此分享下。
1.前期准备工作
Python版本: Python 3.6.3
Apache版本:httpd-2.4.33-win64-VC14
Django版本:Django 2.0.2
期间要注意Apache mod_wsgi 与Python版本的对应问题,如果版本不符的话是会出问题的
2.Apahce的安装
可以百度Apache安装,或者登陆Apache的官网 http://httpd.apache.org/根据自己的电脑环境进行下载安装。
解压后的如图:
然后用记事本打开Apache24/conf/httpd.conf 准备修改配置文件,
ServerRoot "c:/Apache24"这个是Apache的安装目录,文件解压到哪里就填什么位置
#ServerName www.example.com:80是Apache的服务地址,把前面的#可以去掉,"www.example.com"可以改成"localhost",也可以不改
下一步在系统中添加apache的服务
httpd.exe -k install -n "服务名字" httpd后的.exe可以省略
然后可以进入bin目录点击 httpd.exe 会出现命令提示符,不要关闭这个命令提示符,然后打开浏览器输入“localhost”,点击回车,如果显示“It works!”则说明Apache的配置已经成功了
3.安装mod_wsgi
①.下载mod_wsgi的地址 http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi,
因为我的python版本是3.6.3 apache版本是ap24vc14 电脑系统是64位,版本要对应
②.把下载的.whl文件复制到python\Scripts下使用
pip install "mod_wsgi-4.6.4+ap24vc14-cp36-cp36m-win_amd64.whl"
pip install ".whl的文件目录也是可以的"
然后使用命令 mod_wsgi-express module-config 输出三行结果
LoadFile "c:/programdata/anaconda3/python36.dll"
LoadModule wsgi_module "c:/programdata/anaconda3/lib/site-packages/mod_wsgi/serv
er/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/programdata/anaconda3"
这三行结果需要保存下,之后会在httpd.cnf文件下进行配置
4.在httpd.cnf文件中配置django项目
最后在apache/bin 目录中点击 httpd.exe 然后访问就可以了