Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:django_modfastcgi_pyhost

Django installation unter ModFastCGI

Diese Webpräsenz läuft unter einem Shared-Hosting Account mit ModFastCGI als Apache-Modul. Folgende Konfiguration ist erforderlich (angepasst auf mein eigenes Django-Projekt).

Django und Module

Die Installation von Django geschah Lokal für meinen Nutzer. Dazu habe ich das aktuelle Release-Archiv von Django in mein Nutzerverzeichnis (/home/pbeck) entpackt. Alle für das Projekt benötigten Module können dort ebenfalls entpackt werden. Bei meinem Projekt war das Beispielsweise Markdown um kein HTML anwenden zu müssen und xmpp (damit Neuigkeiten direkt per Jabber empfangen werden können).

Apache

vhost/epydial.yourse.de

ServerAlias epydial.yourse.de
       Alias /media/ /home/pbeck/django/contrib/admin/media/
       Alias /site_media/ /home/pbeck/epydial/templates/site_media/
       Alias /images/ /home/pbeck/epydial/templates/site_media/images/
       ScriptAlias / /var/www/pbeck/bin/epydial.fcgi/

### Logging ###
ErrorLog /var/www/pbeck/log/error_django_yourse_de.log
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog /var/www/pbeck/log/access_django_yourse_de.log common

Durch die Alias-Verweise wird die Auslieferung von statischen Dokumenten vollkommen dem Apachen überlassen (wie auch empfohlen). Die Document-Serv-Methode innerhalb der urls.py gilt als ineffizent und unsicher.

Zum Ausführen der Applikation ist eine Scriptdatei innerhalb von bin/ nötig die folgenden Inhalt besitzt. Eine separate Datei wird für jedes Webprojekt benötigt.

bin/epydial.fcgi

#!/usr/bin/python
import sys, os

# Add a custom Python path.
sys.path.insert(0, "/home/pbeck/")
sys.path.insert(0, "/home/pbeck/epydial")

# Switch to the directory of your project. (Optional.)
os.chdir("/home/pbeck/epydial")

# Set the DJANGO_SETTINGS_MODULE environment variable.
os.environ['DJANGO_SETTINGS_MODULE'] = "epydial.settings"

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

Projekt-Konfiguration für den Server

urls.py anpassungen

'django.views.static.serve' - Methoden auskommentieren und Apache die Auslieferung statischer Inhalte überlassen (siehe oben).

settings.py anpassungen

Die Folgenden Variablen mit # auskommentieren. Aktiviert die Fehlerseiten 404.html und 500.html im Template-Verzeichnis.

#DEBUG = True
#TEMPLATE_DEBUG = DEBUG

Folgende Variablen an die Serverkonfiguration anpassen.

  • MEDIA_ROOT
  • MEDIA_URL,
  • ADMIN_MEDIA_PREFIX

Als letzte Änderung ist im Admininterface noch unter Sites » Webseiten der Domainname anzupassen, damit alle Links auf das richtige Ziel verweisen.

linux/django_modfastcgi_pyhost.txt · Zuletzt geändert: 2014/03/16 18:08 von 127.0.0.1