Win7環境下Apache+mod_wsgi本地部署Django


django基礎已經掌握的同學可以嘗試將項目發布已尋找些許成就感,以鼓勵自己接下來進行django的進階學習

以前你總是使用python manage.py runserver進行服務啟動,但是卻不知:

  1. runserver是單線程服務,Apache支持多線程,性能不再一個等級
  2. runserver在debug模式下才能使用靜態文件,而debug模式下運行會留存很多debug信息,時間長了內存爆炸
  3. runserver掛了就GG,但是Apache很穩定,就算掛了,也只掛掉wsgi線程
  4. runserver方便開發調試而產生,生產環境不可用

廢話不多說,上干貨(前提:python環境ok,django項目ok,本地可運行)

作者項目路徑:F:/py_workspace/DJ/proj

Apache路徑:E:\httpd-2.4.33-win64-VC15\Apache24

一、環境

  1. OS:win7
  2. Python2.7:自己安裝配置環境變量即可
  3. Django1.8:詳見“搞測試”公眾號
  4. Apache2.4:點擊下載
  5. mod_wsgi.so:點擊下載

二、Apache配置

  1. 點擊下載,選擇適合自己的Apache版本(32位/64位)下載,下載完成得到httpd-2.4.33-win64-VC15.zip。
  2. 解壓后打開conf/httpd.conf配置文件,修改如下配置:
ServerRoot "E:\httpd-2.4.33-win64-VC15\Apache24"
Listen 192.168.200.235:8090
#ServerName 192.168.200.235:8090   #可以注釋掉
DocumentRoot "E:\httpd-2.4.33-win64-VC15\Apache24\htdocs"    #Apache路徑下htdocs文件夾路徑,下同
<Directory "E:\httpd-2.4.33-win64-VC15\Apache24\htdocs">
ScriptAlias /cgi-bin/ "E:\httpd-2.4.33-win64-VC15\Apache24\cgi-bin/"    #Apache路徑下cgi-bin文件夾的路徑,下同
<Directory "E:\httpd-2.4.33-win64-VC15\Apache24\cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

    在Apache的bin路徑下運行:httpd.exe,出現Apache控制台,訪問localhost:8090,出現 It works 說明Apache服務啟動成功。

    或者在httpd.exe所在路徑下shift+郵件選擇在此處打開命令窗口(CMD),鍵入:httpd.exe -k start 同樣可以啟動Apache服務。

    想要查看Apache服務,右擊我的電腦,選擇管理,查看服務即可。

三、mod_wsgi配置

  1. 點擊下載,將下載成功的壓縮包解壓,選擇適合自己版本的so文件。
  2. 將so文件復制到Apache路徑下的modules文件夾下即可。
  3. 將so文件放到指定位置后再次進行httpd.conf的項目和wsgi配置(直接在httpd.conf后面追加即可)。
#add mod_wsgi
LoadFile "c:/python27/python27.dll"
LoadModule wsgi_module modules/mod_wsgi-py27-VC9.so
WSGIPythonHome "c:/python27"

WSGIScriptAlias / F:/py_workspace/DJ/proj/proj/wsgi.py 

WSGIPythonPath  F:/py_workspace/DJ/proj/

<Directory F:/py_workspace/DJ/proj/proj>  
<Files wsgi.py>  
    Require all granted  
</Files>  
</Directory> 

    配置完成后再次啟動Apache服務,訪問localhost:8090即可看到Django web項目的頁面了。

四、靜態文件配置

    同樣是在httpd.conf配置文件后面追加即可。

 1 #Alias /static F:/py_workspace/DJ/proj/static  
 2 #<Directory F:/py_workspace/DJ/proj/static>  
 3 #    AllowOverride None  
 4 #    Options None  
 5 #    Require all granted  
 6 #</Directory>  
 7 
 8 #Alias /media F:/py_workspace/DJ/proj/media  
 9 #<Directory F:/py_workspace/DJ/proj/media>  
10 #    AllowOverride None       
11 #    Options None  
12 #    Require all granted  
13 #</Directory>  

五、別忘了

  修改django的settings配置:

DEBUG = False

Listen 192.168.200.235:8090

ALLOWED_HOSTS
= ['*']

  這樣配置,局域網內的小伙伴就可以訪問到你的Django Web項目了。

  PS:因為在之前的httpd.conf配置中,已經配置listen為本機ip了,所以這里還是192xxx,有時候為了調試方便我們還在前面的listen中會配置ip為127.0.0.1:8090供自己調測使用,而不讓局域網內的人訪問。

六、Q&A

  Q:啟動Apache的時候提示:無法啟動此程序,因為計算機中丟失VCRUNTIME140.dll 嘗試重新安裝此程序以解決此問題

  A:安裝Microsoft.Net.Framework 4.6.1,點擊下載;安裝Visual C++ Redistributable for Visual Studio 2015,點擊下載

  參考資料:第一第二

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM