Oppsett django med WSGI og apache

stemmer
8

Jeg har vært solgt på mod_wsgi og apache snarere enn mod_python. Jeg har alle delene installert (Django, apache, mod_wsgi), men har kjørt inn i et problem iverksettelse.

Jeg er på osx 10.5 med apache 2.2 og django 1.0b2, mod_wsgi-2.3

Min søknad kalles tred.

Her er de aktuelle filene: httpd-vhosts (inkludert i httpd-conf)

Namevirtualhost tred: 80



  Server tred

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

  
    Bestill tillate, nekte
    Tillat fra alle
  

  Alias ​​/ media / Users / dmg / nettsteder / tred / media

  
    Bestill tillate, nekte
    Tillat fra alle
  

  Alias ​​/ / Users / dmg / nettsteder / tred /

  
        Bestill tillate, nekte
        Tillat fra alle
    

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

  WSGIDaemonProcess tred bruker = dmg gruppe = personale prosesser = 1 = 10 tråder
  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

søknad = django.core.handlers.wsgi.WSGIHandler ()

Når jeg går til http: // tred jeg får en katalogoppføring i stedet gjengitt nettstedet. Jeg tror jeg har fulgt tutorials riktig, men det er åpenbart ikke riktig. Hva kan jeg gjøre for å gjøre dette arbeidet?

Publisert på 31/08/2008 klokken 12:03
kilden bruker
På andre språk...                            


4 svar

stemmer
7

Merk at Alias ​​og WSGIScriptAlias ​​direktiver ikke har samme prioritet. Dermed vil de ikke bli behandlet i filen rekkefølge som er skrevet. I stedet alle Alias ​​direktiver få forrang fremfor WSGIScriptAlias ​​direktiver. Dermed ville det ikke hatt noen betydning hvis Alias ​​for '/' dukket opp etter WSGIScriptAlias, ville det fortsatt ha tatt forrang.

Svarte 24/06/2009 kl. 12:39
kilden bruker

stemmer
6

Hva skjer hvis du fjerner Alias /direktivet?

Svarte 31/08/2008 kl. 18:20
kilden bruker

stemmer
5

Det fungerer. Jeg aner ikke hvorfor, men det gjør.

For framtidig referanse:

Det fungerer fordi Apache behandler alias direktiver i orden, og bruker den første kampen. Det var alltid treffer Alias /, som vil matche noe, før WSGIScriptAlias.

Fra mod_aliasdokumentasjon :

Først blir alle omdirigeringer behandlet før aliaser blir behandlet, og derfor en forespørsel som passer til en Redirecteller RedirectMatchvil aldri ha aliaser brukt. For det andre er aliaser og omdirigeringer behandlet i den rekkefølgen de vises i konfigurasjonsfiler, med den første kampen tar forrang.

Svarte 31/08/2008 kl. 22:51
kilden bruker

stemmer
2

prøve å følge denne opplæringen - http://singlas.in/5-step-tutorial-for-using-django-with-apache-and-mod_wsgi/

du prøver å være vert apache / var / www / mappen og Django app både root (/). Siden Alias ​​Direktivet går foran WSGIScriptAlias, er det rende apache katalogen.

du kan prøve å arrangere Django app på / app. Alternativt vert / var / www / mappe på et annet sted som / offentlig

Svarte 22/07/2013 kl. 20:14
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more