2008-08-31 2 views
8

Я был продан на mod_wsgi и apache, а не mod_python. У меня есть все детали, установленные (django, apache, mod_wsgi), но столкнулись с проблемой развертывания.Установка django с WSGI и apache

Я на OSX 10.5 с апача 2.2 и Джанго 1.0b2, mod_wsgi-2,3

Мое приложение называется тред.

Вот соответствующие файлы: HTTPD-(виртуальные домены, включенные в HTTPd-конфе)

 
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 я получаю список каталогов а не предоставленный веб-сайт. Я думаю, что правильно следил за учебниками, но это явно не так. Что я могу сделать, чтобы сделать эту работу?

ответ

6

Что произойдет, если вы удалите директиву Alias /?

5

Это работает. Я понятия не имею, почему, но это так.

Для дальнейшего использования:

Это работает, потому что Apache обрабатывает директиву псевдонимов в порядке, и использует первый матч. Он всегда бил Alias /, который будет соответствовать чему угодно, до WSGIScriptAlias.

Из mod_alias documentation:

Во-первых, все Перенаправление обрабатываются до Псевдонимы обрабатываются, и поэтому запрос, который соответствует Redirect или RedirectMatch никогда не применили Псевдонимы. Во-вторых, псевдонимы и перенаправления обрабатываются в том порядке, в котором они отображаются в файлах конфигурации, причем первое совпадение имеет приоритет.

7

Обратите внимание, что директивы Alias ​​и WSGIScriptAlias ​​не имеют одинакового приоритета. Таким образом, они не будут обрабатываться в файле, как написано. Вместо этого все директивы Alias ​​имеют приоритет над директивами WSGIScriptAlias. Таким образом, не имело бы значения, если псевдоним для '/' появился после WSGIScriptAlias, он все равно имел бы приоритет.

2

попробовать после этого урока - http://singlas.in/5-step-tutorial-for-using-django-with-apache-and-mod_wsgi/

вы пытаетесь разместить Apache/уаг/WWW/папку и приложение Django как в корне (/). Поскольку директива Alias ​​имеет приоритет над WSGIScriptAlias, это рендеринг apache-каталога.

вы можете попробовать разместить приложение django в/app. В качестве альтернативы можно разместить папку/var/www/в другом месте, например/public