最近項目組正在上python+django。如今將部署過程總結下,相關文件也備份下,面得每次都要弄半天。網上不少不靠譜的作法,讓我反覆試錯,浪費很多時間。html
原材料:python
Python3.6.2express
httpd-2.4.27-win64-VC14apache
mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64.whldjango
說明:字體
因爲Python2.7將來會中止更新,公司就採用最新版算了ui
Apache不能編譯成功,乾脆就下了,如今採用的2.4 VC14版本,爲啥要用VC14,由於mod_wsgi最新版只支持到VC14spa
mod_wsgi-4.5.17+ap24vc14-cp36-cp36m-win_amd64.whl:咱們來解釋下:命令行
ap24vc14:apache 2.4 VC14版本
cp36-cp36m:這一節就是指python3.6+
win_amd64:就是隻64位系統
在這裏切記:必定要找到和你的系統版本,python版本,apache版本一致的幾個套件,不然死活不成功。
接下里:咱們就講下如何安裝:
Apache24:解壓下來以下。
這裏,咱們須要修改:config文件。
在37行附近:修改apache的路徑:
ServerRoot "D:/install/httpd-2.4.27-win64-VC14/Apache24"
在這個文件裏面。默認是C:/Apache24。一鍵替換爲你的實際路徑。能夠參考上圖
在57行附近,修改監聽的端口:
#Listen 12.34.56.78:80
Listen 8088
而後運行httpd.exe.這裏,須要用命令行中運行。只要命令行窗口不退,代表運行成功。使用http://localhost:8088進行訪問
安裝python3.6.2的時候,會把pip一塊兒安裝出來。而後配置環境變量。網上多的很的教程,隨便 參考 這個文檔
參考這個文檔: django 官方文檔 在這裏下載也能夠
注意:在低版本使用mod_wsgi.so便可讓django和apache聯繫起來。可是,這個版本的wsgi沒有.so文件。那麼咱們如何加載wsgi呢?
將你的 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
進行安裝。以後會出現以下內容:
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
#設置腳本
<Directory E:/Workspace/pyworkspace/mycms/mycms>
<Files wsgi.py>
Require all granted
setHandler wsgi-script
</Files>
</Directory>
把如下代碼放到wsgi文件的紅色框內
import sys
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR)
至此,咱們就結束了django 的部署。在咱們的views中,有這樣的返回:
此時啓動apache,輸入你實際的地址: