Django - Einrichtung auf Managed Server¶
Wir möchten Ihnen hier aufzeigen, wie Sie das Web Framework Django auf Ihrem Managed Server installieren und als Dienst einrichten können. Die Einrichtung gestaltet sich dabei sehr einfach, so dass Sie innerhalb weniger Minuten eine lauffähige Instanz haben.
Installation von Django¶
Für die Installation von Django wird eine virtuelle Umgebung (virtual environment) für Python benötigt. Achten Sie bitte darauf welche Python Version auf dem Server installiert ist. Django 3.2 LTS benötigt mindestens Python 3.6. Django 4.0 benötigt mindestens Python 3.8. Beachten Sie dabei die Django FAQ <https://docs.djangoproject.com/en/4.0/faq/install/#what-python-version-can-i-use-with-django>.
Loggen Sie sich per SSH bei dem gewünschten Nutzer ein. Um zu schauen welche Python Version installiert ist reicht die Eingabe von python mit anschließend doppeltem Drücken der Tabulator Taste:
$ python
python2 python2.7 python3 python3.6 python3.9
Führen Sie für die Installation von Django nun folgende Befehle aus:
python3.9 -m venv --without-pip .virtenv
source .virtenv/bin/activate
curl https://bootstrap.pypa.io/get-pip.py | python
python -m pip install Django
deactivate
Damit haben Sie das Web Framework Django installiert und Sie können beginnen, eigene Projekte anzulegen. Wichtig dabei ist, dass Sie zuvor immer in die virtuelle Umgebung wechseln. Dies erfolgt mit
source .virtenv/bin/activate
Verlassen können Sie die virtuelle Umgebung mit
deactivate
Anlegen eines Projekts¶
Das Anlegen eines neuen Projekts in Django erfolgt mit folgendem Befehl
source .virtenv/bin/activate
django-admin startproject mysite
deactivate
Projekt testen und starten¶
Um das neue Projekt zu testen und zu starten führen Sie folgenden Befehl aus
source .virtenv/bin/activate
python mysite/manage.py runserver
deactivate
Nun startet der Django-Server. Jedoch ist dieser nur lokal über Port 8000 aufrufbar und wird beendet, sobald auch die Ihre SSH Sitzung beendet wird. Daher sollte das Projekt als eigener Dienst eingerichtet werden.
Einrichtung als Dienst¶
Damit Endkunden eigene Dienste starten können, muss dies im Angebot des Endkunden aktiviert werden. Im Angebotsmenü können Sie angeben, wie viele Dienste ein Endkunde starten darf.
Um den Dienst einzurichten, gehen Sie ins Endkundenmenü und dort nach
Dienste => Übersicht
Dort kann ein entsprechender Dienst über den Button Neuer Dienst eingerichtet werden. Für die Ausführung empfiehlt es sich, ein Skript anzulegen. Für das Django Projekt sähe dies wie folgt aus:
#!/bin/bash
cd ~
source .virtenv/bin/activate && python mysite/manage.py runserver
Mit chmod +x <skript.sh> können Sie das Skript ausführbar machen.
Geben Sie für den Dienst nun einfach den Pfad zum Skript an.
Sobald Sie mit OK bestätigen wird der Dienst eingerichtet und gestartet. Dieser läuft weiterhin lokal auf Port 8000. Damit das Projekt von außen erreichbar wird, muss ein Proxy eingerichtet werden. Auch dies erfolgt über das Endkundenmenü.
Dienste werden mit softlimits ausgeführt. Es kann sein, dass Django mit zu geringen Limits nicht korrekt startet. Dies erkennt man daran, dass der Dienst immer nur für 0-1 Sekunde läuft. In dem Fall müssen Sie im Angebot des Endkunden das Speicherlimit anpassen. Wenn Sie -1 eintragen wird das Limit deaktiviert.
Einrichtung Proxy¶
Für die Einrichtung des Proxies gehen Sie nach
Subdomains => Übersicht
Dort legen Sie entweder eine neue Subdomain an oder wählen eine vorhandene Subdomain aus. Mit Klick auf die Aktion Ziel können Sie den Proxy Eintrag vornehmen. Als Ziel geben Sie http://127.0.0.1:8000/ an und setzen den Haken bei Proxy-Eintrag für URL-Ziel anstatt Redirect anlegen.
Optional können Sie auch direkt ein Passwortschutz mit einrichten.
Mit Klick auf OK ist die Einrichtung des Proxies abgeschlossen und Sie können Ihr Django Projekt über die gewählte Subdomain aufrufen.