Windows10環(huán)境下用Apache部署Django

1. 部署前準(zhǔn)備

  • 工具的安裝
工具的名稱 用途
vim 文件的交互編輯
sed 命令行操作文件內(nèi)容
curl 訪問url獲取html內(nèi)容
cmd dos窗口中的一些命令,eg:mv, xcopy, echo, type
  • 安裝信息
軟件名稱 軟件版本
系統(tǒng)環(huán)境 Windows 10
Apache 2.4.48
mod_wsgi 4.9.0
Django 3.2.6
python 3.7.9
  • python安裝
    圖1.1 python下載圖

    下載python安裝包,安裝python37環(huán)境.
  • Apache安裝
    圖1.2 apache下載圖

    下載完成后,解壓下載到的壓縮包即可.
  • mod_wsgi安裝
    圖1.3 mod_wsgi下載圖

    下載完成后,進(jìn)去到下載目錄執(zhí)行命:
    C:\Users\admin>cd Downloads
    C:\Users\admin\Downloads> pip install mod_wsgi-4.9.0-cp37-cp37m-win_amd64.whl
    
  • Django安裝
    C:\Users\admin> pip install django
    

2. 構(gòu)建目錄及相關(guān)文件

  • 創(chuàng)建工作目錄
    C:\Users\admin>D:
    D:\>mkdir testweb
    
  • 創(chuàng)建Django項目
    D:\>cd testweb
    D:\testweb>django-admin startproject djangoweb 
    
  • 復(fù)制Apache解壓文件
    D:\testweb>mkdir Apache24
    D:\testweb>xcopy C:\Users\admin\Downloads\httpd-2.4.48-win64-VS16\Apache24 Apache24 /s/q
    
  • 目錄結(jié)構(gòu)
       D:\TESTWEB
       ├─Apache24
       │    │
       │    └─******
       └─djangoweb
            ├─manage.py
            │
            └─djangoweb
                  asgi.py
                  settings.py
                  urls.py
                  wsgi.py
                  __init__.py
    

3. 啟動Apache

  • 編輯httpd.conf文件
    1. 添加第38行內(nèi)容,即apache的安裝路徑


    圖3.1 apache.SRVROOT配置圖

    2. 設(shè)置監(jiān)聽端口


    圖3.2 apache.Listen配置圖

    3. 添加229行內(nèi)容
    圖3.3 apache.ServerName配置圖
  • 啟動apache24服務(wù)

    1. 進(jìn)去httpd.exe所在的目錄
      C:\testweb>cd Apache24/bin
      
    2. 安裝apache24服務(wù)
      C:\testweb\Apache24\bin>httpd.exe -k install -n "apache24"   # 服務(wù)名為apache24
      Installing the 'apache24' service
      The 'apache24' service is successfully installed.
      Testing httpd.conf....
      Errors reported here must be corrected before the service can be started.     # 提示:如果這行下邊出現(xiàn)錯誤則解決錯誤后再啟動!,不是報錯
      C:\testweb\Apache24\bin>
      
    3. 啟動apache24
      C:\testweb\Apache24\bin>net start apache24
      apache24 服務(wù)正在啟動 .
      apache24 服務(wù)已經(jīng)啟動成功。
      
      D:\testweb\Apache24\bin> 
      
    4. 測試apache頁面
      D:\testweb\Apache24\bin>curl localhost:88
      <html><body><h1>It works!</h1></body></html>
      
      D:\testweb\Apache24\bin> 
      

4. 啟動Django

  • 配置Django文件
    1. 進(jìn)入django項目目錄中
      D:\testweb\Apache24\bin>cd D:\testweb\djangoweb\djangoweb
      D:\testweb\djangoweb\djangoweb> 
      
    2. 配置settings.py文件
      將settings.py文件中的DEBUG = True 改為 DEBUG = False(可以不改,看報錯),
      將settings.py文件中的ALLOWED_HOSTS = [] 改為 ALLOWED_HOSTS = ["*"](允許所有機(jī)子訪問).
      D:\testweb\djangoweb\djangoweb>sed -e 's/DEBUG = True/DEBUG = False/; /ALLOWED_HOSTS = \[\]/d;$aALLOWED_HOSTS = ["*"]' settings.py > setting.tmp
      D:\testweb\djangoweb\djangoweb>mv setting.tmp settings.py     
      
    3. 配置urls.py文件
      D:\testweb\djangoweb\djangoweb>sed -e '17afrom . import views' -e '20a/\r    url("^$", views.index),' -e '16afrom django.conf.urls import url' urls.py > urls.tmp
      D:\testweb\djangoweb\djangoweb>mv urls.tmp urls.py
      
    4. 查看urls.py文件
      D:\testweb\djangoweb\djangoweb>sed '16,100p' urls.py -n
      from django.contrib import admin
      from django.conf.urls import url
      from django.urls import path
      from . import views
      
      urlpatterns = [
            url('^$', views.index),
            path('admin/', admin.site.urls),
      ]
      
      D:\testweb\djangoweb\djangoweb>
      
    5. 新建views.py文件
      D:\testweb\djangoweb\djangoweb>echo from django.http import HttpResponse > views.py
      D:\testweb\djangoweb\djangoweb>sed -e '$G;G' -e '$adef index(request):\n    return HttpResponse("<p>My Django</p>")' views.py > views.tmp
      D:\testweb\djangoweb\djangoweb>mv views.tmp views.py
      
    6. 查看views.py文件
      D:\testweb\djangoweb\djangoweb>type views.py
      from django.http import HttpResponse
      
      
      def index(request):
            return HttpResponse("<p>My Django</p>")
      
      D:\testweb\djangoweb\djangoweb>
      
  • 本地測試Django頁面
    1. 進(jìn)入manage.py所在的目錄,運行Django
      D:\testweb\djangoweb\djangoweb>cd ..
      D:\testweb\djangoweb>python manage.py runserver
      Watching for file changes with StatReloader
      Performing system checks...
      
      System check identified no issues (0 silenced).
      
      You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
      Run 'python manage.py migrate' to apply them.
      August 09, 2021 - 22:03:17
      Django version 3.2.6, using settings 'djangoweb.settings'
      Starting development server at http://127.0.0.1:8000/
      Quit the server with CTRL-BREAK.
      
      
    2. 訪問Django
      D:\testweb\djangoweb>curl localhost:8000
      <p>My Django</p>
      D:\testweb\djangoweb> 
      
  • Apache托管Django
    1. 查看mod_wsgi-express
      D:\testweb\djangoweb>mod_wsgi-express module-config
      LoadFile "d:/web/services/python/python37.dll"
      LoadModule wsgi_module "d:/web/services/python/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
      WSGIPythonHome "d:/web/services/python"
      
      D:\testweb\djangoweb>
      
      復(fù)制輸出的三行
    2. 配置httpd.conf
      • 添加下面配置
        # 粘貼復(fù)制的三行
        LoadFile "d:/web/services/python/python37.dll" 
        LoadModule wsgi_module "d:/web/services/python/lib/site-packages/mod_wsgi/server/mod_wsgi.cp37-win_amd64.pyd"
        WSGIPythonHome "d:/web/services/python" 
        
        # django項目中wsgi.py文件路徑
        WSGIScriptAlias / D:/testweb/djangoweb/djangoweb/wsgi.py
        # django項目徑路
        WSGIPythonPath  D:/testweb/djangoweb
        # 設(shè)置wsgi.py文件的權(quán)限
        <Directory D:/testweb/djangoweb/djangoweb>
        <Files wsgi.py>
              Require all granted
        </Files>
        </Directory>
        
    3. 重啟apache服務(wù),并訪問
      C:\WINDOWS\system32>net stop apache24
      apache24 服務(wù)正在停止.
      apache24 服務(wù)已成功停止。
      
      
      C:\WINDOWS\system32>net start apache24
      apache24 服務(wù)正在啟動 .
      apache24 服務(wù)已經(jīng)啟動成功凡泣。
      
      
      C:\WINDOWS\system32>curl localhost:88
      <p>My Django</p>
      C:\WINDOWS\system32>
      
    4. 至此初步配置完成

項目靜態(tài)文件地址, Django項目中靜態(tài)文件的路徑

Alias /static C:/Users/GLX/Desktop/Mydj/VariousData/static
<Directory C:/Users/GLX/Desktop/Mydj/VariousData/static>
AllowOverride None
Options None
Require all granted
</Directory>

項目media地址, 上傳圖片等文件夾的路徑

Alias /media C:/Users/GLX/Desktop/Mydj/VariousData/media
<Directory C:/Users/GLX/Desktop/Mydj/VariousData/media>
AllowOverride None
Options None
Require all granted

</Directory>
————————————————
版權(quán)聲明:本文為CSDN博主「彩虹hai」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議踱蠢,轉(zhuǎn)載請附上原文出處鏈接及本聲明汁汗。
原文鏈接:https://blog.csdn.net/u013172664/article/details/80866753

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市妇斤,隨后出現(xiàn)的幾起案子摇锋,更是在濱河造成了極大的恐慌,老刑警劉巖站超,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件荸恕,死亡現(xiàn)場離奇詭異,居然都是意外死亡死相,警方通過查閱死者的電腦和手機(jī)融求,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來算撮,“玉大人生宛,你說我怎么就攤上這事县昂。” “怎么了陷舅?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵倒彰,是天一觀的道長。 經(jīng)常有香客問我莱睁,道長待讳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任仰剿,我火速辦了婚禮创淡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘酥馍。我一直安慰自己辩昆,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布旨袒。 她就那樣靜靜地躺著汁针,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砚尽。 梳的紋絲不亂的頭發(fā)上施无,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天,我揣著相機(jī)與錄音必孤,去河邊找鬼猾骡。 笑死,一個胖子當(dāng)著我的面吹牛敷搪,可吹牛的內(nèi)容都是我干的兴想。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼赡勘,長吁一口氣:“原來是場噩夢啊……” “哼嫂便!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起闸与,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤毙替,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后践樱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厂画,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年拷邢,在試婚紗的時候發(fā)現(xiàn)自己被綠了袱院。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖坑填,靈堂內(nèi)的尸體忽然破棺而出抛人,到底是詐尸還是另有隱情,我是刑警寧澤脐瑰,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站廷臼,受9級特大地震影響苍在,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荠商,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一寂恬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧莱没,春花似錦初肉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至嘹裂,卻和暖如春妄壶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背寄狼。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工丁寄, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人泊愧。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓伊磺,卻偏偏與公主長得像,于是被迫代替她去往敵國和親删咱。 傳聞我的和親對象是個殘疾皇子屑埋,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容