Django installieren: Unterschied zwischen den Versionen

Aus Hostsharing Wiki
Zur Navigation springen Zur Suche springen
("djangoprojekt/" fehlte im django.fcgi script)
Zeile 28: Zeile 28:
>>>  
>>>  
</pre>
</pre>
Mit Ctrl-D kann die Konsole wieder verlassen werden.


===Django-Projekt===
===Django-Projekt===

Version vom 19. Juni 2012, 20:55 Uhr

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

Mit Ctrl-D kann die Konsole wieder verlassen werden.

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/djangoprojekt/")
os.environ['DJANGO_SETTINGS_MODULE']= "djangoprojekt.settings"
sys.path.insert(0, "/path_to_doms/doms/example.com/djangoprojekt/")
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.