Die opstel van django met WSGI en apache
Vra
Ek is verkoop op mod_wsgi en apache eerder as mod_python.Ek het al die dele geïnstalleer (django, apache, mod_wsgi) maar het loop in'n probleem te ontplooi.
Ek is op osx 10.5 met apache 2.2 en django 1.0b2, mod_wsgi-2.3
My aansoek is genoem tred.
Hier is die relevante lêers:httpd-vhosts (ingesluit in 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-handvatsel.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()
Toe ek gaan om te http://tred Ek kry'n gids lys eerder as die gelewer webwerf.Ek dink ek het die tutoriale reg, maar dit is duidelik nie reg nie.Wat kan ek doen om hierdie werk te maak?
Oplossing
Wat gebeur as jy die Alias /
richtlijn te verwyder?
Ander wenke
Let daarop dat Alias en WSGIScriptAlias voorskrifte nie dieselfde voorrang.Dus, hulle sal nie verwerk word in die lêer orde soos dit geskryf is.In plaas daarvan, al die Alias riglyne kry voorrang bo WSGIScriptAlias riglyne.Dus, sou dit nie saak gemaak as die Alias vir '/' verskyn na WSGIScriptAlias, sou dit nog steeds het voorrang.
Dit werk. Ek het geen idee hoekom nie, maar dit doen.
Vir verdere navrae:
Dit werk omdat Apache prosesse alias voorskrifte ten einde, en maak gebruik van die eerste wedstryd. Dit is altyd slaan Alias /
, wat enigiets sal pas, voor WSGIScriptAlias
.
Van die mod_alias
dokumentasie :
In die eerste plek al aansture verwerk voordat Aliassen verwerk, en dus 'n versoek om by 'n
Redirect
ofRedirectMatch
sal nooit weer hoef Aliassen toegepas. Tweedens, die Aliassen en aansture verwerk in die volgorde waarin hulle verskyn in die konfigurasielêers, met die eerste wedstryd wat voorrang.
probeer om na aanleiding van hierdie handleiding - http://singlas.in/5-step-tutorial-for-using-django-with-apache-and-mod_wsgi/
jy is probeer om aan te bied apache /var/www/ gids en die Django app beide by die wortel (/).Sedert Alias richtlijn voorrang oor WSGIScriptAlias, dit is die lewering van apache directory.
jy kan probeer om aan te bied die django inligting op /app.Alternatiewelik bied die /var/www/ gids op'n ander plek soos /openbare