Django installieren
Installation Djangobibliothek
Die Djangobibliotheken werden in einer Virtualenv-Umgebung installiert. Vorraussetzung ist ein auf dem System installiertes python mit einem virtualenv-Paket Zunächst wird die Virtualenvumgebung erstellt:
xyz00-doms:~$ virtualenv djangoenv New python executable in djangoenv/bin/python Installing setuptools............done.
Dann werden die Django-Bibliotheken in die eben erstellte Virtualenvumgebung installiert.
xyz-doms:~$ djangoenv/bin/easy_install django Searching for django Reading http://pypi.python.org/simple/django/ Reading http://www.djangoproject.com/ Best match: Django 1.3 . . . Finished processing dependencies for django
Testen, ob Django installiert ist:
xyz-doms:~$ djangoenv/bin/python Python 2.6.6 (r266:84292, Dec 27 2010, 00:02:40) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import django >>>
Django-Projekt
Dann wird das Django Projekt im Bereich einer Domain abgelegt.
xyz-doms:~$ cd ~/doms/example.com/ xyz-doms:~$ /path_to_djangoenv/djangoenv/bin/django-admin.py startproject djangoprojekt
Jetzt kann man unter Verwendung des Pythons der Virtualenv testen, ob Django läuft.
xyz00: /path_to_djangoenv/djangoenv/bin/python manage.py runserver Validating models... 0 errors found Django version 1.3, using settings 'mysite.settings' Development server is running at http://127.0.0.1:8000/ Quit the server with CONTROL-C.
... und die settings.py an die Hostsharing-Pfade angepasst.
Nutzung mit FastCGI
Zunächst richtet man den FastCGI-Skript (django.fcgi) ein und legt es im fastcgi-Verzeichnis ab und macht es ausführbar:
#!/path_to_djangoenv/djangoenv/bin/python import os, sys os.chdir("/path_to_doms/doms/example.com/") os.environ['DJANGO_SETTINGS_MODULE']= "djangoprojekt.settings" sys.path.insert(0, "/path_to_doms/doms/example.com/") from django.core.servers.fastcgi import runfastcgi runfastcgi(method="threaded", daemonize="false")
Das Djangoprojekt sollte jetzt unter example.com/fastcgi-bin/django.fcgi erreichbar sein.
Nutzung mit WSGI via flup
Zunächst richtet man den FastCGI-Skript (django.fcgi) ein und legt es im fastcgi-Verzeichnis ab und macht es ausführbar:
#!/path_to_djangoenv/djangoenv/bin/python import os, sys os.chdir("/path_to_doms/doms/example.com/django") os.environ['DJANGO_SETTINGS_MODULE']= "djangoprojekt.settings" sys.path.insert(0, "/path_to_doms/doms/example.com/django") sys.path.insert(0, "/path_to_doms/doms/example.com/django/djangoprojekt") from flup.server.fcgi import WSGIServer from django.core.handlers.wsgi import WSGIHandler WSGIServer(WSGIHandler()).run()
Das Djangoprojekt sollte jetzt unter example.com/fastcgi-bin/django.fcgi erreichbar sein. Tipp: Manchmal werden Änderungen in den Quellen, insbesondere der settings.py nicht übernommen. Dann hilft es den Zeitstempel der Datei django.fcgi mit touch zu aktualisieren.
Apache Weiterleitung
Nun wird das Djangoprojekt unter www.example.com verfügbar gemacht. Hierfür wird eine .htaccess im entsprechenden Domainverzeichnis angelegt:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /fastcgi-bin/django.fcgi/$1 [QSA,L]
Nun sollte die Seite unter (www.)example.com erreichbar sein.