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

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