用mod wsgi在apache中使用django

2021-06-13 04:22:07 字數 2179 閱讀 2883

利用 mod_wsgi和apache來部署django現在比較流行,也被認為是最好的方式。django框架,python,apache2這些(以及-dev)的安裝配置都是基本的,這裡就不說了。

mod_wsgi支援任何滿足python wsgi介面的apache模組。你要做的第一件事情就是安裝mod_wsgi,可以參考:

python.h

:nosuch file

ordirectory等錯誤,這是因為你的系統裡面只有python的runtime package沒有develop package。

如果是linux,可以通過sudo apt-get install pythonx.x-dev(x.x替換成python版本號)安裝。有其他錯誤,可以參考:

一旦你成功安裝好wsgi模組,接下來需要將wsgi模組匯入到apache中,在apache的http.conf檔案中新增:loadmodule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so,然後重啟apache,在apache的log中應該會看到:apache/2.2.22 (ubuntu) mod_wsgi/3.4 python/2.7.3 configured -- resuming normal operations,這說明apache中wsgi模組成功啟動。

wsgi是為python語言定義的web伺服器和web應用程式或者框架之間的一種簡單通用的介面,符合cgi標準。在這裡wsgi就起到了乙個apache與django中介軟體的作用。為了能通過apache訪問到django應用,首先需要在apache的

檔案裡面新增:

wsgiscriptalias / /path/to/mysite/apache/django.wsgi

import os

import sys

os.environ["django_settings_module"] = "mysite.settings"

path = '/path/to/mysite'

if path not in sys.path:

上面的path就是你的django project所在目錄。然後重啟apache,在瀏覽器中輸入http://localhost/+你在django中配置的url就能看到你提供的django服務了。

但是django不支援靜態檔案,例如:css、js、image等,它會把這塊工作扔給web伺服器,這可以通過alias命令來設定,舉例說明:

alias /templates/images/ /home/yuyao/workspace/websites/searchwebs/searchwebs/templates/images/

alias /templates/css/ /home/yuyao/workspace/websites/searchwebs/searchwebs/templates/css/

order deny,allow

allow from all

order deny,allow

allow from all

通過把上面的命令放在http.conf檔案中,下面解釋一下命令的含義,以images為例:
alias /templates/images/ /home/yuyao/workspace/websites/searchwebs/searchwebs/templates/images/
是將/home/yuyao/workspace/websites/searchwebs/searchwebs/templates/images/對映到/templates/imges/,這樣,如果你在html檔案裡有這樣的引用:src="/templates/images/logo.png",apache看到這個url之後就會去/home/yuyao/workspace/websites/searchwebs/searchwebs/templates/images/中查詢logo.png,css也是同樣的道理。也就是說,django把通過url查詢靜態檔案的工作交給了apache,而apache要找到相應的靜態檔案,需要做乙個類似上面的重新命名(對映)。通過上面簡單的配置就能是靜態檔案正常工作了。對於比較小的工程這樣做沒什麼問題,如果工程比較大,關於django管理靜態檔案的方法可以參考:

用mod wsgi在Apache上部署Django

1.安裝和配置apache 2.安裝mod wsgi 1 解壓縮 sudo tar xvf mod wsgi 3.4.tar.gz 2 配置mod wsgi cd mod wsgi 3.4 configure enable shared with apxs usr server apache2 bi...

在Linux上用Apache搭建Git伺服器

最近在學linux,終於在linux上用apache搭建起了git伺服器,在此記錄一下。伺服器 阿里雲伺服器 linux版本 centos 6.5 apache版本 apache 2.2.15 git版本 git 1.7.1 git訪問方式 基於http的基本驗證 非ssl apache的安裝 1....

在Linux上用Apache搭建Git伺服器

最近在學linux,終於在linux上用apache搭建起了git伺服器,在此記錄一下。伺服器 阿里雲伺服器 linux版本 centos 6.5 apache版本 apache 2.2.15 git版本 git 1.7.1 git訪問方式 基於http的基本驗證 非ssl apache的安裝 1....