一、部署環(huán)境
Python 3.7
Django 2.1.7
window7 64位
二、Apache下載與配置
1.進入Apache官網(wǎng)下載頁面,https://www./cgi-bin/download.plx 下載對應版本:
選擇的是Apache2.4 VC14,點擊后跳轉(zhuǎn)到下圖,點擊對應版本的Download。
2.下載后得到一個壓縮文件,直接解壓縮,文件夾里的Apache24文件夾就是Apache服務器文件,不需要安裝,直接將Apache24文件夾移動到你想放的位置。我這里直接將Apache24移動到D盤根目錄:
3.配置Apache服務器文件:
進入D:\Apache24\conf目錄,找到httpd.conf文件,這個就是apache服務器的配置文件。
我用Windows自帶的寫字板打開(也可以用其它編程工具),會看到很多代碼,不用管,也不要刪除任何代碼,直接找到如下代碼行進行修改:
Define SRVROOT "D:/Apache24" # Apache24文件的路徑, ... Listen 127.0.0.0:80 #此處為你要發(fā)布的網(wǎng)站ip地址,此處我用127.0.0.1:80 用于本地測試;80端口自己設置 ... ServerName localhost:80 # 由于本地測試,我沒有改
Tips:這里可以使用查找命令,快捷鍵 Ctrl+F
4.創(chuàng)建Apache服務
打開命令行(管理員),cd進入D:\Apache24\bin文件夾(此處根據(jù)自己實際Apache24文件夾所在位置為準),輸入如下代碼創(chuàng)建服務:
httpd.exe -k install -n "apache2.4" #apache2.4是所創(chuàng)建服務器名稱,可更改。
出現(xiàn)successfully installed說明服務創(chuàng)建成功;同時后面可能會跟一些其他信息,說明你的配置是否正確,有錯的話再檢查步驟3,看路徑,ip是否正確。如果遇到c++插件報錯,下載安裝即可。
創(chuàng)建成功后,進入D:\Apache24\bin,運行 ApacheMonitor.exe 啟動服務。
打開瀏覽器,在地址欄輸入 127.0.0.1 顯示如下頁面表示成功:
三、配置Django
1.安裝mod_wsgi
進入https://www.lfd./~gohlke/pythonlibs/#mod_wsgi 下載相應版本mod_wsgi Python的插件。ap24cv24指apache版本,比如apache24, cp37指python3.7,win_adm64指操作系統(tǒng)為64位。
此處直接將該whl文件復制到python路徑下的script文件夾下(可以通過python快捷方式的目標查找),我的是C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Scripts。cd進入該路徑(可以在當前窗口的地址欄輸入cmd,然后回車),命令行輸入
pip3 install "mod_wsgi-4.5.24+ap24vc14-cp37-cp37m-win_amd64.whl"
引號中的文件名根據(jù)實際更改,安裝成功后再輸入
mod_wsgi-express module-config
出現(xiàn)以下三行提示,這三行一定要記下來,后面配置最重要的就是它了:
LoadFile "c:/users/administrator/appdata/local/programs/python/python37/python37.dll"
LoadModule wsgi_module "c:/users/administrator/appdata/local/programs/python/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
WSGIPythonHome "c:/users/administrator/appdata/local/programs/python/python37"
至此,mod_wsgi安裝成功。
2.配置django項目
再次打開httpd.conf文件,再最末尾添加如下代碼,具體解釋看注釋,實際情況根據(jù)自己的項目位置更改。
# 1.安裝wsgi模塊后,出來的三行字符,直接復制過來 LoadFile "c:/users/administrator/appdata/local/programs/python/python37/python37.dll" LoadModule wsgi_module "c:/users/administrator/appdata/local/programs/python/python37/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd" WSGIPythonHome "c:/users/administrator/appdata/local/programs/python/python37" # 2.設置工程中的wsgi路徑 WSGIScriptAlias / D:\website\website\website\wsgi.py # 3.設置工程路徑 WSGIPythonPath D:\website\website # 4.設置wsgi路徑 <Directory D:\website\website\website> <Files wsgi.py> Require all granted </Files> </Directory> #設置靜態(tài)文件路徑 Alias /static D:\website\website\website\static <Directory D:\website\website\website\static> AllowOverride None Options None Require all granted </Directory>
Tips:
關于Django的靜態(tài)文件:
1.Django項目的在settings.py中的STATIC_URL = '/static/'后面添加
STATIC_ROOT = os.path.join(BASE_DIR, 'static'),
2.Django收集靜態(tài)文件命令:python manage.py collectstatic
寫好后保存文件,回到服務器管理器,找到apache2.4重啟服務(記住要重啟服務)。
熟悉的界面大功告成!
倘若想在局域網(wǎng)下訪問該站點,可按照如下鏈接操作https://jingyan.baidu.com/article/b87fe19e639a8052183568be.html直接從第五步看,建議別關閉防火墻。
Tips:
1.輸入主機IP地址不能訪問,請修改D:\Apache24\conf\httpd.conf文件Listen 127.0.0.0:80
為Listen 192.168.31.155:80
。
2.出現(xiàn)“Invalid HTTP_HOST header: '192.168.1.111:8000'. You may need to add '192.168.1.111' to ALLOWED_HOSTS”錯誤請修改Django的setting文件中ALLOWED_HOSTS = ['*']