最近項目組正在上python+django。現(xiàn)在將部署過程總結(jié)下铺纽,相關(guān)文件也備份下,面得每次都要弄半天哟忍。網(wǎng)上很多不靠譜的做法狡门,讓我反復(fù)試錯,浪費不少時間锅很。
原材料:
mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64.whl
說明:
由于Python2.7未來會停止更新其馏,公司就采用最新版算了
Apache不能編譯成功,干脆就下了爆安,現(xiàn)在采用的2.4 VC14版本尝偎,為啥要用VC14,因為mod_wsgi最新版只支持到VC14
mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64.whl:我們來解釋下:
ap24vc14:apache 2.4 VC14版本
cp36-cp36m:這一節(jié)就是指python3.6+
win_amd64:就是只64位系統(tǒng)
在這里切記:一定要找到和你的系統(tǒng)版本,python版本致扯,apache版本一致的幾個套件肤寝,否則死活不成功。
接下里:我們就講下如何安裝:
1.配置Apache
Apache24:解壓下來如下抖僵。
在37行附近:修改apache的路徑:
ServerRoot "D:/install/httpd-2.4.27-win64-VC14/Apache24"
在這個文件里面耍群。默認(rèn)是C:/Apache24义桂。一鍵替換為你的實際路徑〉腹福可以參考上圖
在57行附近慷吊,修改監(jiān)聽的端口:
#Listen 12.34.56.78:80
Listen 8088
然后運行httpd.exe.這里,需要用命令行中運行曹抬。只要命令行窗口不退溉瓶,表明運行成功。使用http://localhost:8088進行訪問
2.安裝python及pip
安裝python3.6.2的時候谤民,會把pip一起安裝出來堰酿。然后配置環(huán)境變量。網(wǎng)上多的很的教程张足,隨便參考這個文檔
3.安裝Django
參考這個文檔:django 官方文檔在這里下載也可以
4.用mod_wsgi打通apache和django
注意:在低版本使用mod_wsgi.so即可讓django和apache聯(lián)系起來触创。但是,這個版本的wsgi沒有.so文件为牍。那么我們?nèi)绾渭虞dwsgi呢哼绑?
將你的 mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64.whl 文件,拷貝到python scripts的目錄下碉咆,用
pip3 install mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64.whl
進行安裝凌那。之后會出現(xiàn)如下內(nèi)容:
PS C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Scripts> pip3 install C:\Users\Administrator\AppData\Lo
cal\Programs\Python\Python36\Scripts\mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64.whl
Requirement already satisfied: mod-wsgi==4.5.17+ap24vc14 from file:///C:/Users/Administrator/AppData/Local/Programs/Python/Python36/Scripts/mod_wsgi-4.5.17%2Bap24vc14-cp36-cp36m-win_amd64.whl in c:\users\administrator\appdata\local\programs\python\python36\lib\site-packages
PS C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Scripts> mod_wsgi-express module-config
LoadFile "c:/users/administrator/appdata/local/programs/python/python36/python36.dll"
LoadModule wsgi_module "c:/users/administrator/appdata/local/programs/python/python36/lib/site-packages/mod_wsgi/server/mod_wsgi.cp36-win_amd64.pyd"
WSGIPythonHome "c:/users/administrator/appdata/local/programs/python/python36"
PS C:\Users\Administrator\AppData\Local\Programs\Python\Python36\Scripts>
從命令行窗口把黑色字體部分拷貝出來,放到apache httpd.config
的 最后一個 LoadModule 的位置吟逝。大概在180行左右。
緊接著赦肋,在后寫入:
#wsgi文件的位置
WSGIScriptAlias / E:/Workspace/pyworkspace/mycms/mycms/wsgi.py
#項目位置
WSGIPythonPath E:/Workspace/pyworkspace/mycms
#設(shè)置腳本
wsgi.py>
Require all granted
setHandler wsgi-script
5.修改wsgi文件:
把以下代碼放到wsgi文件的紅色框內(nèi)
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
至此块攒,我們就結(jié)束了django 的部署。在我們的views中佃乘,有這樣的返回:
此時啟動apache囱井,輸入你實際的地址: