windows下apache部署django问题小结

折腾了一下午,总算把django项目部署到apache中了,在这里做下简单的小结。本文不做详细介绍,只是把要注意的事项强调一下。

方案

本来打算使用nginx+gunicorn+django启动项目,但是发现安装gunicorn之后,无法运行,查原因说是gunicorn不支持在windows系统,于是作罢。
转战nginx+uwsgi+django,但是又发现uwsgi也不支持windows,于是找到apache,开始折腾。

  • 所以:如果你是windows环境下:那么gunicornuwsgi方案都是不可行的,apache+django可行。

具体实施

1.安装apache

下载地址:https://www.apachelounge.com/download/VC14/

  • 注意:要下载VC14版本的,具体是64还是32,这个要和你安装的python版本一样
  • 安装好做下简单的配置
    Define SRVROOT "C:\Apache24"  #Apache24文件的路径,其余不用改。
    Listen 192.168.31.227:8000 #此处为你要发布的网站ip地址,此处我用我电脑的ip和端口,你也可以用127.0.0.1:8000用于本地测试;80端口自己设置
    ServerName 192.168.31.227:8000
  • apache一些命令
httpd -k install
httpd -k start
重启命令:httpd -k restart 
关闭命令:httpd -k stop

2.安装mod_wsgi

下载地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#mod_wsgi
在这里插入图片描述

  • 注意:第一处红线,与apache VC14对应,所以,第一步下载apache要下载VC14版本,明白了吧。否则可能出现 cannot load *.dll into server 的错误。
  • 然后下载你电脑中python版本对应的whl文件即可。
  • 把下载的 .whl文件复制到 python\Scripts下使用 pip 进行安装
    pip install mod_wsgi‑4.5.17+ap24vc14‑cp36‑cp36m‑win32.whl
    进行安装在安装成功后在python的安装目录的\scripts文件夹下运行
    mod_wsgi-express module-config
    运行后命令行得到如下结果
    LoadFile "e:/hx_work/python36_32/python36.dll"
    LoadModule wsgi_module "e:/hx_work/python36_32/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win32.pyd"
    WSGIPythonHome "e:/hx_work/python36_32"

配置django

打开 httpd.conf 文件,在文件末尾加入以下信息


#添加mod_wsgi.so模块,这三行是上面命令行中显示出来的
LoadFile "e:/hx_work/python36_32/python36.dll"
LoadModule wsgi_module "e:/hx_work/python36_32/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win32.pyd"
WSGIPythonHome "e:/hx_work/python36_32"
 
 
#指定项目的wsgi.py配置文件路径,这个py文件是在你的Django项目中  
WSGIScriptAlias / d:/picture/picture/wsgi.py  
  
#指定项目目录,即你的Django项目路径 
WSGIPythonPath  d:/picture
  
<Directory d:/picture/picture>  
<Files wsgi.py>  
    Require all granted  
</Files>  
</Directory>  
  
#项目静态文件地址, Django项目中静态文件的路径  
Alias /static D:/picture/tu/static
<Directory D:/picture/tu/static>  
    AllowOverride None  
    Options None  
    Require all granted  
</Directory>  
  
#项目media地址, 上传图片等文件夹的路径  
Alias /media D:/picture/tu/media
<Directory D:/picture/tu/media>  
    AllowOverride None  
    Options None  
    Require all granted  
</Directory> 

注意:在django的setting中要设置 STATIC_ROOT的路径

参考

https://blog.csdn.net/weixin_40754816/article/details/80955817
https://blog.csdn.net/u014305812/article/details/72636342
https://blog.csdn.net/Mr_blueD/article/details/79759483
https://blog.csdn.net/dave_haijie/article/details/78060888

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章