Apache mod_python django und xp

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
oshoki
User
Beiträge: 30
Registriert: Donnerstag 3. Januar 2008, 22:49

Nachdem ich nun Apache, mod_python mit django und xp zum Laufen gebracht habe und es mit "It worked !" bestätigt wurde, hat sich ein neues Problem aufgetan.
Ich habe ein model erstellt für sqlite3 Datenbank und soweit alles eingerichtet, dass das Admin Log-in gestartet werden kann.
Mit dem Entwicklungsserver funktioniert auch alles in einwandfreier Darstellung.
Leider nicht unter Apache. Hier erscheint auch die Login-form, doch leider ohne css-Unterstützung. Die Funktionalität ist gegeben. Ich kann ein- und ausloggen. Nur die Darstellung ist mager.

Auszug aus der site-admin:
  • <head>
    <title>Site administration | Django site admin</title>
    <link rel="stylesheet" type="text/css" href="/media/css/dashboard.css" />
Ganz offensichtlich bekommt der Apache keinen Zugang zu dashboard.css.
Meine http.conf sieht für diesen Testfall so aus:
  • <Location "/test2/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE test2.settings
    PythonOption django.root /test2
    PythonInterpreter test2
    PythonDebug On
    PythonPath "['C:/Daten/Python/Django/apps', 'C:/Daten/Python/Django/Python/Lib/site-packages/django'] + sys.path"
    </Location>
Wie bringe ich nun dem Apache bei, dass er nicht nur die templates sondern auch die dazugehörigen css-files von Django anziehen soll.
Freue mich auf eure schnellen tips
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

du musst natürlich noch einen Alias zu den "media" - Daten machen, sonst kann der Apache die CSS-Dateien ja nicht ausliefern...

Code: Alles auswählen

Alias /test2/media/ C:/pfad/zu/python2.4/site-packages/django/contrib/admin/media/
oshoki
User
Beiträge: 30
Registriert: Donnerstag 3. Januar 2008, 22:49

Vielen Dank für die schnelle Antwort. Ich habe es nun so eingebaut:
  • <Location "/test2/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE test2.settings
    PythonOption django.root /test2
    PythonInterpreter test2
    PythonDebug On
    PythonPath "['C:/Daten/Python/Django/apps', 'C:/Daten/Python/Django/Python/Lib/site-packages/django'] + sys.path"
    </Location>
    Alias /test2/media/ C:/Daten/Python/Django/Python/Lib/site-packages/django/contrib/admin/media/
Fehlt da noch was? oder müsste das so passen

Das ist nun die Meldung die im error-log von Apache steht:
oshoki
User
Beiträge: 30
Registriert: Donnerstag 3. Januar 2008, 22:49

Nach etwas rumprobieren klappt es nun für
Windows XP, Apache 2.2, mod_python 3.31, Django 1.02, Python 2.5
wie folgt, falls jemand den gleichen Stress hat(te):
  • # Directory, der Django admin media Umfaenge, das nicht im Document-root ist fuer den Apache greifbar machen
    <Directory "Pfad-zu-Python/Lib/site-packages/django/contrib/admin/media/">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>

    # media von Django admin verfuegbar machen, wenn sie nicht im Document-root sind
    Alias /media/ "Pfad-zu-Python/Lib/site-packages/django/contrib/admin/media/"

    # Ort des Projekts
    <Location "/mysite/">
    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings
    PythonOption django.root /mysite
    PythonInterpreter mysite
    PythonDebug On
    PythonPath "['Pfad-zum-parent-des-Projekts'] + sys.path"
    </Location>

    # bestimmte Verzeichnisse vom Zugriff ueber mod_Python ausschliessen (z.B. Bilder etc.)
    <Location "/mysite/media/">
    SetHandler none
    </Location>
Antworten