這幾天花了點(diǎn)時(shí)間學(xué)習(xí)把Django開發(fā)好的項(xiàng)目部署到Apache上,感覺官方的一些文檔說得很不清楚,花了我比較多的時(shí)間,這里把我自己配置的過程說一下。注意一下,我這里的配置的環(huán)境是Windows,版本情況:Apache 2.2,Django 1.1,Mod_wsgi 3.1,Python 2.6。不同版本的配置方法大同小異。
一、演示環(huán)境
這里假設(shè)您的Django和Apache已經(jīng)安裝好,并且Django的工程已經(jīng)開發(fā)好。下面是我自己的相關(guān)目錄位置,您需要參照您的實(shí)際目錄。
二、下載mod_wsgi文件
mod_wsgi可以去http://code.google.com/p/modwsgi/downloads/list這里下載,選擇您需要的版本,下載下來后,是一個(gè)名字為mod_wsgi*****.os的一個(gè)文件。把這個(gè)文件重命名為mod_wsgi.os,然后放到Apache的moduls目錄下目錄下,對于我這里的情況,就是放到 C:\Program Files\Apache Software Foundation\Apache2.2\modules 這個(gè)目錄下。放到這個(gè)目錄下后,就算安裝完畢了。
三、配置
首先需要去更改Apache的httpd.conf(C:\Program Files\Apache Software Foundation\Apache2.2\conf目錄下)配置文件:
1)在配置文件中LoadModule的那一段,添加一行如下:
LoadModule wsgi_module modules/mod_wsgi.so
2)然后再添加一行如下:
WSGIScriptAlias / "D:/WorkSpace/DjangoProject/FirstProject/django.wsgi"
注意上面的目錄D:/WorkSpace/DjangoProject/FirstProject,這個(gè)就是您的工程的目錄,需要根據(jù)的實(shí)際情況做修改。后面的django.wsgi這個(gè)文件是需要新建的,后面我再來說這個(gè)如何新建這個(gè)文件。
3)找到Directory的配置區(qū)域,添加如下的一段配置
<Directory "D:/WorkSpace/DjangoProject/FirstProject">
Order Deny,Allow
Allow from all
</Directory>
注意,上面的目錄,這個(gè)同上面的一樣,是您的工程的目錄,根據(jù)您的實(shí)際情況做修改。
4)新建一個(gè)wsgi文件。
在工程的目錄下新建一個(gè)django.wsgi,用記事本打開,輸入以下的內(nèi)容并保存:
import os
import sys
import django.core.handlers.wsgi
sys.path.append(r'D:\WorkSpace\DjangoProject')
os.environ['DJANGO_SETTINGS_MODULE'] = 'FirstProject.settings'
application = django.core.handlers.wsgi.WSGIHandler()
解釋一下第4、5兩行:
第四行中的 D:/WorkSpace/DjangoProject 是您的工程目錄D:/WorkSpace/DjangoProject/FirstProject 的上一層目錄。根據(jù)您工程的目錄情況做修改。
第五行 os.environ['DJANGO_SETTINGS_MODULE'] = 'FirstProject.settings' ,這個(gè)FirstProject.settings就是指您的工程目錄下的setting文件,根據(jù)您的工程目錄名稱的不同需要做修改。
最后,這個(gè)django.wsgi文件名可以隨便取,例如test.wsgi、app.wsgi等等,但是一定要與2) 中的那行配置保持一致。如果您這里新建的文件名不是django.wsgi而是test.wsgi,那么2) 中的那行配置就應(yīng)該修改為:WSGIScriptAlias / "D:/WorkSpace/DjangoProject/FirstProject/django.wsgi"。
5)最后修改項(xiàng)目的setting.py文件。
找到您工程目錄下的setting.py,對于我這里就是D:\WorkSpace\DjangoProject\FirstProject\setting.py。找到其中的TEMPLATE_DIRS,默認(rèn)為:
TEMPLATE_DIRS = ("Template",)
修改為如下:
TEMPLATE_DIRS = ("D:\WorkSpace\DjangoProject\FirstProject",)
這個(gè)D:\WorkSpace\DjangoProject\FirstProject就是您的工程目錄,根據(jù)您的實(shí)際情況做相應(yīng)的修改。到這里,整個(gè)配置就基本完成了。
四、其它信息
這個(gè)是關(guān)于mod_wsgi實(shí)現(xiàn)的一些配置命令的詳細(xì)解釋:http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives,例如我們之前配置中的WSGIScriptAlias到底是一個(gè)什么意思等,需要的時(shí)候可以做一個(gè)參考。