当前位置:  开发笔记 > 编程语言 > 正文

用WSGI和apache设置django

如何解决《用WSGI和apache设置django》经验,为你挑选了3个好方法。

我已经在mod_wsgi和apache而不是mod_python上出售了.我安装了所有部件(django,apache,mod_wsgi),但遇到了部署问题.

我在osx 10.5上使用apache 2.2和django 1.0b2,mod_wsgi-2.3

我的应用程序叫做tred.

以下是相关文件:httpd-vhosts(包含在httpd-conf中)

NameVirtualHost tred:80



  ServerName tred

  Alias /admin_media /usr/lib/python2.5/site-packages/django/contrib/admin/media

  
    Order allow,deny
    Allow from all
  

  Alias /media /Users/dmg/Sites/tred/media

  
    Order allow,deny
    Allow from all
  

  Alias / /Users/dmg/Sites/tred/

  
        Order allow,deny
        Allow from all
    

  WSGIScriptAlias / /Users/dmg/Sites/tred/mod_wsgi-handler.wsgi

  WSGIDaemonProcess tred user=dmg group=staff processes=1 threads=10
  WSGIProcessGroup tred


mod_wsgi的-handle.wsgi

import sys
import os

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..')
os.environ['DJANGO_SETTINGS_MODULE'] = 'tred.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

当我去http:// tred时,我得到一个目录列表而不是渲染的网站.我想我已经正确地遵循了教程,但显然不对.我能做些什么来完成这项工作?



1> Graham Dumpl..:

请注意,Alias和WSGIScriptAlias指令没有相同的优先级.因此,它们不会按文件顺序处理.相反,所有Alias指令都优先于WSGIScriptAlias指令.因此,如果在WSGIScriptAlias之后出现'/'的别名,它将不再重要,它仍然优先.



2> John Milliki..:

如果删除Alias /指令会发生什么?



3> John Milliki..:

有用.我不知道为什么,但确实如此.

备查:

它的工作原理是因为Apache按顺序处理别名指令,并使用第一个匹配.它总是在击中Alias /,之前会匹配任何东西WSGIScriptAlias.

mod_alias文档:

首先,在处理别名之前处理所有重定向,因此匹配a RedirectRedirectMatch永远不会应用别名的请求.其次,别名和重定向按照它们在配置文件中出现的顺序进行处理,第一次匹配优先.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有