Inhaltsverzeichnis
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.