windows+Apache部署django專案
阿新 • • 發佈:2019-01-04
花了我一天的時間到處百度谷歌問大神,終於部署成功了我的Django專案……在此抱怨windows作為生存環境的惡劣條件……
此處只顯示我所經過的流程,由於沒有實時記錄所以安裝下載還是結合蟲師點這裡跳轉以及LogMe的步驟點這裡跳轉一起看。
簡單的所需下載內容:
- Apache2.22下載,一步步next,遇到server Domain/serverName可以隨便填寫,注意格式,之後可在httpd配置檔案修改,不用太在意
- mod_wsgi-3.2.ap2.2.win32-py2.7 下載,為什麼下載這版:①py2.7-amd64的zip沒有直接編譯可供Apache modules用的mod_wsgi.so檔案,自己編譯麻煩。②Apache2.4常用於搭配python2.7+win64(指python64位非作業系統),故下降版本至Apache2.22,更具體的解釋 LogMe已指出,包括為何使用wsgi是因為django1.10之後放棄fcgi、而uwsgi並不為windows支援(無uname模組)而不適合nginx。
Apache本身達成 ‘it works’是非常容易的,按步驟next改自己的安裝路徑到finish基本就成功了,注意一下原始的80埠,換成別的比較合適。
配置httpd
httpd.conf檔案中
35: ServerRoot "D:/code_zx/apa" # Apache安裝路徑 apa內為bin,cgi_bin 所在地
46:Listen 8024 # 專案所在地
129:LoadModule wsgi_module modules/mod_wsgi.so # 新增,mod_wsgi模組
WSGIScriptAlias / D:/code_zx/clue_proj/clue_proj/wsgi.py # 指定你專案的wsgi.py路徑 WSGIPythonPath D:/code_zx/clue_proj/ WSGIPythonHome D:/python #新增部分 <Directory D:/code_zx/clue_proj/clue_proj> # 專案wsgi檔案路徑 <Files wsgi.py> #Require all granted # 這條語句為Apache2.4專用,改為下一行 Allow from all </Files> </Directory> # 靜態檔案路徑 <Directory "D:/baidu_code_zx/clue_proj/app/static/"> # 注意靜態資料夾路徑後的‘/’,關係到Apache載入django 後臺站點時css樣式 Order deny,allow Allow from all </Directory> Alias /static/ "D:/baidu_code_zx/clue_proj/app/static/" # 同上條註釋 ServerName 你的ip地址:你想要開的專案埠
# HTML檔案所在路徑
DocumentRoot "D:/baidu_code_zx/clue_proj/app/templates"
240:#Options Indexes FollowSymLinks 替換為Options None 目的是放置伺服器展現檔案列表
Options None
ps:靜態檔案路徑 相關專案settings:
#settings.py STATIC_ROOT = "D:/baidu_code_zx/clue_proj/app/static/" # 指向你新建的static檔案用於放置引用的靜態檔案 python manage.py collectstatic
該命令會提示你是否引用靜態檔案到你自己的專案,與你自己專案使用圖片,js引用的靜態檔案路徑不同(這個是STATIC_URL = 'XXX/你的靜態資料夾/')
全文觀察下所有帶路徑的行,替換成你所對應的路徑 比如 ‘C:/Apache2/cgi_bin‘ 替換為 ‘D:/code_zx/apa/cgi_bin‘
Apache 建立服務:cmd進入到Apache/bin/目錄中 httpd.exe -k install Apache2.2 # 不要進入資料夾直接雙擊
Apache 開啟服務:計算機右鍵選擇‘管理‘ 進入服務 啟動或 httpd.exe -k start(已啟動的用該命令會報套接字相關的錯)
Apache 服務刪除:重新來過 選擇進入cmd,命令 sc delete 服務名
Apache重啟動出錯可在‘’事件檢視器-windows日誌-應用程式‘’檢視錯誤記錄或者 Apache/logs/中檢視errors.log。
總體還是多試,多查,網上有很多都是直接抄了別人的連結複製,我這部分也是網上搜了很久才部署成功,可惜沒有一邊執行一邊記錄步驟,不然就會更加有條理,完整。