django运行环境安装--mod_wsgi+apache
作者:谭俊河 时间:2009-09-02
一、下载mod_wsgi:
地址:http://code.google.com/p/modwsgi/
二、将mod_wsgi加入到apache中:
1)将上一步下载的mod_wsgi-*.so放入到apache的modules目录下;
2)编辑apache的httpd.conf文件,加入以下语句:
LoadModule wsgi_module modules/mod_wsgi-*.so
3)重启apache。
三、将mod_wsgi和django集成:
1)创建django工程:
django-admin.py startproject mysite
2)创建django.wsgi文件:
在mysite文件夹下创建文件夹wsgi;
在wsgi文件夹下面创建django.wsgi文件,其内容为:
# -*- coding:utf-8 -*-
import os, sys
#添加当前工程文件夹及其上层文件夹到sys.path中
p1 = os.path.abspath(os.path.join(os.path.dirname(__file__), '../'))
p2 = os.path.abspath(os.path.join(os.path.dirname(__file__), '../../'))
sys.path.append(p1)
sys.path.append(p2)
#sys.path.append('D:/Python/Python26/Lib/site-packages/django')
#重定向输出,如果有错误信息打印,或者调用print打印信息,将输出到apache的error.log日志文件中。
sys.stdout = sys.stderr
#print sys.path
#配置设置文件
os.environ['DJANGO_SETTINGS_MODULE'] = 'Test01.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
3)如果静态资源(图片、css、js……)和django不在同一个服务器则在apache的httpd.conf文件中加入以下语句:
WSGIScriptAlias / F:/download/my/python/Workspace/django/Test01/wsgi/django.wsgi
<Directory F:/download/my/python/Workspace/django/Test01/wsgi>
Order allow,deny
Allow from all
</Directory>
4)如果静态资源(图片、css、js……)和django在同一个服务器则在apache的httpd.conf文件中加入以下语句:
#下面是django的一些设置
Alias /robots.txt F:/download/my/python/Workspace/django/Test01/static/robots.txt
Alias /favicon.ico F:/download/my/python/Workspace/django/Test01/static/favicon.ico
AliasMatch /([^/]*/.css) F:/download/my/python/Workspace/django/Test01/static/styles/$1
AliasMatch /([^/]*/.js) F:/download/my/python/Workspace/django/Test01/static/scripts/$1
Alias /media/ F:/download/my/python/Workspace/django/Test01/static/media/
<Directory F:/download/my/python/Workspace/django/Test01/static>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / F:/download/my/python/Workspace/django/Test01/wsgi/django.wsgi
<Directory F:/download/my/python/Workspace/django/Test01/wsgi>
Order allow,deny
Allow from all
</Directory>
5)管理模块的样式表和javascript以及图片调整
在上一步中,对于django的管理模块有一个问题,那就是css,js,img不能正确被解释,弄了一天,想了一个折中的办法:
1.将上面的apache配置文件修改为如下
#下面是django的一些设置
Alias /robots.txt F:/download/my/python/Workspace/django/Test01/static/robots.txt
Alias /favicon.ico F:/download/my/python/Workspace/django/Test01/static/favicon.ico
Alias /media/ F:/download/my/python/Workspace/django/Test01/static/media/ #位置提前了
AliasMatch /([^/]*/.css) F:/download/my/python/Workspace/django/Test01/static/styles/$1
AliasMatch /([^/]*/.js) F:/download/my/python/Workspace/django/Test01/static/scripts/$1
<Directory F:/download/my/python/Workspace/django/Test01/static>
Order deny,allow
Allow from all
</Directory>
WSGIScriptAlias / F:/download/my/python/Workspace/django/Test01/wsgi/django.wsgi
<Directory F:/download/my/python/Workspace/django/Test01/wsgi>
Order allow,deny
Allow from all
</Directory>
2.将django按照目录下的../django/contrib/admin/media里面的css,img,js三个文件夹,拷贝到工程目录对应的目录下:../static/media
四、补充说明
这里只是在windows上面试验的结果,其中的一些路径需要更换为实际的路径;另外这只是一个简单的设置,具体操作参考:http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango