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

django基礎已經掌握的同窗能夠嘗試將項目發佈已尋找些許成就感,以鼓勵本身接下來進行django的進階學習python

之前你老是使用python manage.py runserver進行服務啓動,可是殊不知:git

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

廢話很少說,上乾貨(前提:python環境ok,django項目ok,本地可運行)github

做者項目路徑:F:/py_workspace/DJ/projweb

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

1、環境

  1. OS:win7
  2. Python2.7:本身安裝配置環境變量便可
  3. Django1.8:詳見「搞測試」公衆號
  4. Apache2.4:點擊下載
  5. mod_wsgi.so:點擊下載

2、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服務啓動成功。django

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

    想要查看Apache服務,右擊個人電腦,選擇管理,查看服務便可。
多線程

3、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項目的頁面了。ide

4、靜態文件配置

    一樣是在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>  

5、別忘了

  修改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供本身調測使用,而不讓局域網內的人訪問。

6、Q&A

  Q:啓動Apache的時候提示:沒法啓動此程序,由於計算機中丟失VCRUNTIME140.dll 嘗試從新安裝此程序以解決此問題

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

  參考資料:第一第二

相關文章
相關標籤/搜索