Setup für Django 

Um Django auf unserem Webspace zu nutzen, befolgen Sie folgende Schritte. Diese sind als Anhaltspunkte zu sehen, bei Anpassungen an die eigenen Gegebenheiten (anderer Pfad als /, …) sind weitere Änderungen durchzuführen.

  1. Stellen Sie im LiveConfig den Pfad der Domain(s) korrekt ein, wir empfehlen folgendes Schema:
    • example.com zeigt auf „/examplecom“
    • www.example.com zeigt auf „/examplecom“
    • weitere Subdomains nach Wahl auf „/examplecom.subdomain“, oder direkt „/subdomain“
    • Die Verzeichnisse entsprechen dann im FTP-Account „/htdocs/examplecom“ bzw. „/htdocs/examplecom.subdomain“!
  2. Laden Sie Ihre Python-Anwendung via FTP in das Zielverzeichnis der Domain auf den Server, folgende Verzeichnisstruktur ist zu empfehlen:
    /
    /priv
    /priv/examplecom     # Der Sourcecode des Django-Projekts
    /htdocs
    /htdocs/examplecom      # alle Medien-Daten (CSS, Bilder, Uploads, ...)
  3. Speichern Sie folgende „.htaccess“-Datei im Zielverzeichnis der Domain (/htdocs/examplecom):
    Options +ExecCGI
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /app.wsgi/$1 [QSA,L]
  4. Legen Sie in '/htdocs/examplecom' folgende „app.wsgi“ ab:
    #!/usr/bin/python
    import sys, os
    
    sys.path.insert(0, '/var/www/USERNAME/priv/examplecom')
    sys.path.insert(0, '/var/www/USERNAME/priv')
    
    os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'
    
    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()
  5. die app.wsgi muss außerdem ausführbar gemacht werden (chmod 0755) - genauere Informationen finden Sie in der Dokumentation des FTP-Clients
  6. Rufen Sie die Webseite im Browser auf:
    • wird die Seite erfolgreich angezeigt: Herzlichen Glückwunsch!
    • erhalten Sie Fehler, finden Sie auf dieser Seite weitere Hinweise.

HINWEIS!
USERNAME ist der tatsächliche Benutzername Ihres Hosting-Account, z.B. ssd1234 oder mars1234.

VirtualEnv einbinden

Sollen zusätzliche Module, die wir standardmäßig nicht bereitstellen, genutzt werden, so können Sie diese ähnlich einer VirtualEnv auf dem Server hochladen.

Wir empfehlen folgendes Vorgehen:

  1. Legen Sie /priv/modules an
  2. Laden Sie Ihre benötigten Python-Module dort hinein
  3. Binden Sie nun, ähnlich wie schon Ihr Django-Projekt, diesen Ordner in Ihrer app.wsgi ein:
    sys.path.insert(0, '/var/www/USERNAME/priv/modules')
  4. Diese Änderung muss ebenfalls in Ihrer manage.py erfolgen:
    #!/usr/bin/python
    
    import sys, os
    sys.path.insert(0, '/var/www/USERNAME/priv/modules')
    
    from django.core.management import execute_manager
    try:
        import settings # Assumed to be in the same directory.

    Den Rest der Datei (es werden nur die beiden Import/sys.path.insert-Zeilen benötigt!) belassen Sie unverändert.

  5. Beim Aufruf der app.wsgi oder der manage.py in der Shell werden nun die Module in diesem Verzeichnis ebenfalls berücksichtigt.