Seite 1 von 1

mod_wsgi und django

Verfasst: Mittwoch 26. August 2009, 15:13
von snoer
moin allerseits..
ich bin dabei eine seite mit django zu schreiben.
ich habe meinen apache2 webserver mit mod_wsgi wie folgt konfiguriert

httpd.conf

Code: Alles auswählen

Alias /~me/capoeira/robots.txt /home/me/public_html/capoeira/robots.txt
Alias /~me/capoeira/favicon.ico /home/me/public_html/capoeira/favicon.ico

Alias /~me/capoeira/media/ /home/me/public_html/capoeira/media/

<Directory /home/me/public_html/capoeira/media>
	Order deny,allow
	Allow from all
</Directory>


WSGIScriptAlias /~me/capoeira/ /home/me/public_html/capoeira/apache/django.wsgi
/home/me/public_html/capoeira/apache/django.wsgi

Code: Alles auswählen

import os
import sys

sys.path.insert(0, '/home/me/public_html')
os.environ['DJANGO_SETTINGS_MODULE'] = 'capoeira.settings'

from django.core.handlers.wsgi import WSGIHandler

application = WSGIHandler()
soweit sogut
h++p://localhost/~me/capoeira/media - media daten werden korrekt ausgeliefert
h++p://localhost/~me/capoeira/

Code: Alles auswählen

Using the URLconf defined in capoeira.urls, Django tried these URL patterns, in this order:
   1. ^login/$
The current URL, , didn't match any of these.
und nun mein problem

h++p://localhost/~me/capoeira/login/ - gibt einen herkömmlichen 404 error.

was muss ich an meiner server konfiguration ändern damit das /login/ als string an den python interpreter geschickt wird anstatt vom server als nicht vorhandener pfad erkannt zu werden?

ich hoffe ich habe nichts wesentliches vergessen und hoffe auf schnelle hilfe :]
schöjn gruß
snoer

Verfasst: Mittwoch 26. August 2009, 16:43
von nemomuk
Hatte das auch mal, soweit ich mich erinnern kann, musst du leider alle deine URL-Patterns ändern und den Pfad am Anfang einfügen. Was ich relativ schwach finde.

Verfasst: Mittwoch 26. August 2009, 16:53
von snoer
das fände ich auch schwach...
kann ich mir aber fast nicht vorstellen, da es ja definitiv anders konzipiert ist.
auf dem entwicklungsserver klappt es ja ohne probleme.

ich glaube immernoch an eigene blindheit oder sowas.
sollte ich tatsächlich alles richtig gemacht haben?..

Verfasst: Mittwoch 26. August 2009, 18:26
von nemomuk
naja, auf dem Dev-Server hast du dein Projekt allerdings auch nicht in einem Unterverzeichnis.

Verfasst: Mittwoch 26. August 2009, 18:31
von apollo13
das geht hier:

Code: Alles auswählen

WSGIDaemonProcess django user=www-data group=www-data threads=3 display-name=django
WSGIProcessGroup django
WSGIApplicationGroup django

WSGIScriptAlias /projekte /opt/django-apps/projekte/projekte.wsgi

WSGIImportScript /opt/django-apps/projekte/projekte.wsgi \
   process-group=django application-group=django

<Location "/projekte/media">
        SetHandler None
</Location>

Alias /projekte/media "/opt/django-apps/projekte/media"
<Directory "/opt/django-apps/projekte/media">
        AllowOverride None
        Order deny,allow
        Allow from all
</Directory>

Code: Alles auswählen

from django.conf.urls.defaults import *
from django.conf import settings
from django.views.generic.simple import redirect_to
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    # Uncomment this for admin:
     (r'^admin/doc/', include('django.contrib.admindocs.urls')),
     (r'^admin/(.*)', admin.site.root),
     (r'^todo/',  include('projectmanagement.urls')),
     (r'^abrechnung/', include('abrechnung.urls')),
     (r'^$', redirect_to, {'url':'/projekte/todo/'}),
)

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
    )
Edit: btw, der / am Ende kann oft auch einen Unterschied machen (WSGIScriptAlias)

Verfasst: Mittwoch 26. August 2009, 18:38
von snoer
also ich habs grad mal ausprobiert..

selbst wenn ich in der urls.py den vollen pfad angebe klappt es nicht..
scheint wohl doch ein fehler in der server konfig zu sein

Verfasst: Mittwoch 26. August 2009, 18:39
von apollo13
Nur für den Fall, dass mein Edit oben verloren ging:
Edit: btw, der / am Ende kann oft auch einen Unterschied machen (WSGIScriptAlias)

Verfasst: Mittwoch 26. August 2009, 19:48
von snoer
EDIT nr3:

Ich hoffe dass nicht allzuviele leute hier mitgelesen haben..
danke apollo

aus
WSGIScriptAlias /~me/capoeira/ /home/me/public_html/capoeira/apache/django.wsgi
wurde
WSGIScriptAlias /~me/capoeira /home/me/public_html/capoeira/apache/django.wsgi

und aus
:(
wurde
:oops:

danke!