Informationsportal: News, Fragen & Antworten und Hilfe
Django-Projekte anlegen
Wir gehen im Folgenden davon aus, dass das Projekt "Beispiel" heißen soll.
- Öffnen Sie eine SSH-Verbindung zum Raumopol-SSH-Server.
- Begeben Sie sich in den Ordner ../public/.
- Erstellen Sie mit
virtualenv beispiel_env
eine virtuelle Python-Umgebung (Der Ordnername hier ist nur ein Beispiel und kann frei gewählt werden)
Alternativ kann man hier auch eine bestimmte Python-Version auswählen, hier im Beispiel 3.3:
virtualenv -p $(which python3.3) beispiel_env
- Wechseln Sie in den Ordner der Umgebung mit
cd beispiel_env
- Aktivieren Sie die Umgebung mit
. bin/activate
Sie können die Umgebung jederzeit mitdeactivate
wieder verlassen. - Installieren Sie die Pakete django, flup und pyinotify mit pip.
Python 2.x
pip install django flup pyinotify
Python 3.x
pip install django pyinotify https://github.com/Janno/flup-py3.3/archive/master.zip
- Erstellen Sie das Django-Projekt mit
django-admin.py startproject beispiel
- Erstellen Sie im aktuellen Ordner, also z.B. beispiel_env, eine Datei "django.fcgi" mit folgendem Inhalt, wobei "beispiel" zu ersetzen ist mit dem tatsächlichen Projektnamen.
#!bin/python
import sys, os# Redirect stdout and stderr
sys.stdout = open('django.log', 'a')
sys.stderr = sys.stdoutPROJECT_NAME="beispiel"
# Add a custom Python path.
sys.path.insert(0, "./%s" % PROJECT_NAME)# Set the DJANGO_SETTINGS_MODULE environment variable.
os.environ['DJANGO_SETTINGS_MODULE'] = "%s.settings" % PROJECT_NAMEfrom django.core.servers.fastcgi import runfastcgi
# debug=True is used by the python fcgi package flup to display proper error messages
runfastcgi(method="threaded", daemonize="false", maxspare=1, minspare=1, debug=True) - WICHTIG: Geben Sie der Datei Ausführrechte für den Besitzer:
chmod u+x django.fcgi
-
Stellen Sie außerdem sicher, dass niemand sonst Schreibrechte für die Datei hat:
chmod go-w django.fcgi
- Erstellen Sie in beispiel_env eine Datei ".htaccess" mit folgendem Inhalt, wobei "beispiel" wieder zu ersetzen ist mit dem tatsächlichen Projektnamen:
RewriteEngine OnRewriteRule ^((^|/)static/(css|js|img)/.*)$ beispiel/$1 [L]
RewriteCond %{REQUEST_FILENAME} !(^|/)django.fcgi
RewriteCond %{REQUEST_FILENAME} !(^|/)beispiel/admin
RewriteCond %{REQUEST_FILENAME} !(^|/)beispiel/static
RewriteRule ^(.*)$ django.fcgi/$1 [QSA,L]
- Ändern Sie STATIC_URL in beispiel/beispiel/settings.py auf
STATIC_URL = '/beispiel_env/beispiel/'
Fügen Sie außerdem
STATIC_ROOT = BASE_DIR
hinzu. - Führen Sie im Ordner beispiel_env/beispiel
python manage.py collectstatic
aus und bestätigen Sie die alle Anfragen. - Führen Sie im Ordner beispiel_env/beispiel
python manage.py syncdb
aus. Das Script fragt Sie nun ob Sie einen Superuser erstellen wollen. - Falls Sie einen Superuser erstellt haben, können Sie sich nun unter http://ihre-domain.tld/beispiel_env/admin einloggen.