Bereitstellen einer Django-basierten Anwendung

in Amazon Lightsail

Amazon Lightsail ist der erste Schritt zum Einstieg in AWS. Es bietet virtuelle Server, Speicher, Datenbanken und Netzwerke sowie einen kostengünstigen monatlichen Tarif.

In diesem Tutorial stellen Sie ein Beispiel einer Django-basierten Anwendung in Lightsail bereit. Sie starten, indem Sie die Instance erstellen und Ihre Anwendung bereitstellen. Dann stellen Sie mithilfe des integrierten Webservers von Django sicher, dass die Anwendung ordnungsgemäß ausgeführt wird. Als Letztes konfigurieren Sie Apache, um die Anwendung zu hosten.

Mit Lightsail kostenlos loslegen.

Voraussetzungen

Dies ist ein Tutorial für Fortgeschrittene und setzt Folgendes voraus:

  • Grundlegende Kenntnisse der Linux-Befehlszeile (cp, cat usw.)
  • Die Möglichkeit zur Nutzung eines Linux-Texteditors (vi, nano usw.)
  • Zumindest grundlegende Kenntnisse von Django und Python
  • Ein kostenloses Amazon Web Services-Konto
Über dieses Tutorial
Zeit 30 Minuten                                     
Kosten Es können Kosten anfallen.
Anwendungsfall Datenverarbeitung
Produkte Amazon Lightsail
Zielgruppe Entwickler
Level Fortgeschritten 
Letzte Aktualisierung 23. März 2020

Sie haben bereits ein Konto? Anmelden

1. Eine Lightsail-Instance erstellen

a. Melden Sie sich in Ihrem AWS-Konto an und navigieren Sie zur Lightsail-Startseite.


b. Klicken Sie auf Instance erstellen.

django1

c. Wählen Sie die entsprechende AWS-Region.

add django
django2

d. Wählen Sie eine Availability Zone.

django3
django4

e. Wählen Sie unter Blueprint auswählen die Option Django.

 

django5

f. Behalten Sie für die anderen Einstellungen die Standardwerte bei. Scrollen Sie auf dem Bildschirm nach unten und klicken Sie auf Instance erstellen.

 

2. Ein Django-Projekt erstellen

In diesem Abschnitt stellen Sie eine einfache „Hello, World“-Anwendung bereit. Sie verwenden die Befehlszeile von Django zum Erstellen eines neuen Projekts sowie einer neuen Anwendung, bevor Sie den tatsächlichen Anwendungscode im nächsten Abschnitt hinzufügen.

Falls Sie bereits eine Django-Anwendung programmiert haben, können Sie diese für dieses Tutorial verwenden. Notieren Sie sich jedoch die in der „Hello, World“-Anwendung verwendete Verzeichnisstruktur, da diese wichtig wird, wenn Sie Ihre eigene Anwendung konfigurieren.

Das Django-Projekt liegt im folgenden Verzeichnis:

/opt/bitnami/apps/django/django_projects/tutorial

Das Projekt selbst wird im folgenden Verzeichnis aufbewahrt:

/opt/bitnami/apps/django/django_projects/tutorial/tutorial

Die App wird im folgenden Verzeichnis erstellt:

/opt/bitnami/apps/django/django_projects/tutorial/tutorial/hello_world


a. Klicken Sie auf der Lightsail-Homepage auf das Symbol für den browserbasierten SSH-Client für Ihre Django-Instance. Dadurch wird eine SSH-Sitzung auf Ihrer Instance gestartet. All die folgenden Befehle müssen in dieser Sitzung ausgeführt werden.

django6

b. Geben Sie die folgenden Befehle ein, um in das Verzeichnis django_projects zu wechseln, und erstellen Sie ein neues Tutorial-Projekt.
cd /opt/bitnami/apps/django/django_projects && \
django-admin.py startproject tutorial

c. Geben Sie den folgenden Befehl ein, um in das Projektverzeichnis Tutorial zu wechseln, und erstellen Sie eine neue hello_world-App.

cd tutorial && python3 manage.py startapp hello_world

3. Ihren Anwendungscode hinzufügen

Da Sie jetzt das Gerüst für Ihre Anwendung haben, können Sie Code hinzufügen. Die Anwendung zeigt einfach „Hello, World“ an, wenn die Webseite geladen wird.

Führen Sie diese Befehle dennoch im browserbasierten SSH-Clientfenster von Lightsail aus.


a. Geben Sie den folgenden Befehl ein, um die Datei views.py mit dem Vim-Texteditor zu öffnen:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/hello_world/views.py

b. Drücken Sie I, um die Datei zu bearbeiten, und ersetzen Sie den vorhandenen Code durch Folgendes:

from django.http import HttpResponse

def index(request):
     return HttpResponse("Hello, world")

c. Drücken Sie Esc, geben Sie :wq! ein und drücken Sie die Eingabetaste, um zu speichern und Vim zu beenden.


d. Geben Sie den folgenden Befehl ein, um eine urls.py-Datei für Ihre Anwendung im selben Verzeichnis wie die Datei views.py zu erstellen:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/hello_world/urls.py

e. Drücken Sie I, um die Datei zu bearbeiten, und fügen Sie den folgenden Code hinzu:

from django.urls import path
from . import views

urlpatterns = [
     path('', views.index, name='index'),
]

f. Drücken Sie Esc, geben Sie :wq! ein und drücken Sie die Eingabetaste, um zu speichern und Vim zu beenden.


g. Geben Sie den folgenden Befehl ein, um die Datei urls.py zu öffnen:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/tutorial/urls.py

h. Drücken Sie I, um die Datei zu bearbeiten, und ersetzen Sie den vorhandenen Code durch Folgendes:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('', include('hello_world.urls')),
    path('admin/', admin.site.urls),
]

i. Drücken Sie Esc, geben Sie :wq! ein und drücken Sie die Eingabetaste, um zu speichern und Vim zu beenden.


4. Die Anwendung testen

Als Nächstes verwenden Sie den integrierten Webserver von Django zum Überprüfen, ob alles wie erwartet funktioniert. Standardmäßig verwendet Apache Port 80 auf Ihrer Lightsail-Instance, Sie führen den Django-Webserver daher auf Port 8000 aus. Um die Website aufrufen zu können, müssen Sie Port 8000 auf der Lightsail-Firewall öffnen.


a. Kehren Sie zur Lightsail-Homepage zurück und klicken Sie auf den Namen Ihrer Django-Instance.


b. Klicken Sie im horizontalen Menü auf Netzwerk.

django7

c. Klicken Sie unter Firewall auf Weitere hinzufügen.

django8

d. Geben Sie unter Portbereich 8000 ein und klicken Sie auf Speichern.

django9

e. Kehren Sie zur Lightsail-Homepage zurück und notieren Sie sich die IP-Adresse der Instance.

django10

f. Kehren Sie zur Terminalsitzung zurück und geben Sie den folgenden Befehl ein, um die Datei settings.py zu öffnen:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/tutorial/settings.py

g. Drücken Sie I und ändern Sie die Zeile ALLOWED_HOSTS, damit sie die IP-Adresse Ihrer Lightsail-Instance wie im folgenden Beispiel gezeigt enthält.

Hinweis: Wenn Sie Ihre settings.py-Datei bearbeiten, ersetzen Sie 192.0.2.143 durch die öffentliche IP-Adresse Ihrer Instance.

ALLOWED_HOSTS = ['192.0.2.143']

h. Drücken Sie Esc, geben Sie :wq! ein und drücken Sie die Eingabetaste, um zu speichern und Vim zu beenden.


i. Geben Sie den folgenden Befehl ein, um den Webserver von Django auf Port 8000 zu starten:

cd /opt/bitnami/apps/django/django_projects/tutorial/ && python3 manage.py runserver 0.0.0.0:8000

j. Richten Sie Ihren Webbrowser auf Port 8000 der IP-Adresse der Instances (z. B. http:// 192.0.2.143:8000).

„Hello, world“ wird angezeigt. Damit wird bestätigt, dass Ihre Anwendung ausgeführt wird.

5. Die Anwendung mit Apache hosten

Es wird nicht empfohlen, Produktionsanwendungen mit dem integrierten Server von Django zu betreiben. Daher konfigurieren Sie in diesem letzten Abschnitt Apache für Ihre Anwendung.

Dies erfolgt durch Konfigurieren der Anwendung für die Verwendung von Web Services Gateway Interface (WSGI) und anschließendes Erstellen eines Apache Virtual Host (vHost).

Führen Sie diese Befehle dennoch im browserbasierten SSH-Clientfenster von Lightsail aus.


a. Geben Sie den folgenden Befehl ein, um die Datei wsgi.py zu bearbeiten:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/tutorial/wsgi.py

b. Geben Sie :1$d ein und drücken Sie die Eingabetaste, um alle auszuwählen, und löschen Sie die vorhandenen Inhalte der Datei wsgi.py.


c. Drücken Sie zur Bearbeitung I und fügen Sie den folgenden Code zur Datei wsgi.py hinzu:

import os
import sys
sys.path.append('/opt/bitnami/apps/django/django_projects/tutorial')
os.environ.setdefault("PYTHON_EGG_CACHE", "/opt/bitnami/apps/django/django_projects/tutorial/egg_cache")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "tutorial.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

d. Drücken Sie Esc, geben Sie :wq! ein und drücken Sie die Eingabetaste, um zu speichern und Vim zu beenden.


e. Geben Sie den folgenden Befehl ein, um ein conf-Verzeichnis für Ihre Anwendung zu erstellen.

mkdir /opt/bitnami/apps/django/django_projects/tutorial/conf

f. Geben Sie den folgenden Befehl ein, um eine httpd-app.conf-Datei im gerade erstellten conf-Verzeichnis zu erstellen:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/conf/httpd-app.conf

g. Drücken Sie zur Bearbeitung I und fügen Sie den folgenden Code hinzu:

<IfDefine !IS_DJANGOSTACK_LOADED>
      Define IS_DJANGOSTACK_LOADED
      WSGIDaemonProcess wsgi-djangostack   processes=2 threads=15    display-name=%{GROUP}
</IfDefine>

<Directory "/opt/bitnami/apps/django/django_projects/tutorial/tutorial">
    Options +MultiViews
    AllowOverride All
    <IfVersion >= 2.3>
        Require all granted
    </IfVersion>

    WSGIProcessGroup wsgi-djangostack

    WSGIApplicationGroup %{GLOBAL}
</Directory>

Alias /tutorial/static "/opt/bitnami/apps/django/lib/python3.7/site-packages/Django-2.2.9-py3.7.egg/django/contrib/admin/static"
WSGIScriptAlias /tutorial '/opt/bitnami/apps/django/django_projects/tutorial/tutorial/wsgi.py'

h. Drücken Sie Esc, geben Sie :wq! ein und drücken Sie die Eingabetaste, um zu speichern und Vim zu beenden.


i. Geben Sie den folgenden Befehl ein, um eine httpd-prefix.conf-Datei im Verzeichnis conf für Ihre Anwendung zu erstellen:

sudo vim /opt/bitnami/apps/django/django_projects/tutorial/conf/httpd-prefix.conf

j. Drücken Sie zur Bearbeitung I und fügen Sie den folgenden Code hinzu:

Include "/opt/bitnami/apps/django/django_projects/tutorial/conf/httpd-app.conf"

k. Drücken Sie Esc, geben Sie :wq! ein und drücken Sie die Eingabetaste, um zu speichern und Vim zu beenden.


l. Geben Sie den folgenden Befehl ein, um die Datei bitnami-apps-prefix.conf zu öffnen:

sudo vim /opt/bitnami/apache2/conf/bitnami/bitnami-apps-prefix.conf

m. Drücken Sie zur Bearbeitung I und fügen Sie am Ende der Datei die folgende Zeile hinzu:

Include "/opt/bitnami/apps/django/django_projects/tutorial/conf/httpd-prefix.conf"

n. Drücken Sie Esc, geben Sie :wq! ein und drücken Sie die Eingabetaste, um zu speichern und Vim zu beenden.


o. Geben Sie den folgenden Befehl ein, um die Datei bitnami.conf zu öffnen:

sudo vim /opt/bitnami/apache2/conf/bitnami/bitnami.conf

p. Geben Sie :1,$d ein und drücken Sie in Vim die Eingabetaste, um alle auszuwählen, und löschen Sie die Inhalte der Datei bitnami.conf.


q. Drücken Sie zur Bearbeitung I und fügen Sie den folgenden Code zur Datei hinzu:

<VirtualHost _default_:80>
    WSGIScriptAlias / /opt/bitnami/apps/django/django_projects/tutorial/tutorial/wsgi.py

    <Directory /opt/bitnami/apps/django/django_projects/tutorial>
    AllowOverride all
        Require all granted
        Options FollowSymlinks
    </Directory>

    DocumentRoot /opt/bitnami/apps/django/django_projects/tutorial
</VirtualHost>

r. Drücken Sie Esc, geben Sie :wq! ein und drücken Sie die Eingabetaste, um zu speichern und Vim zu beenden.


s. Geben Sie den folgenden Befehl ein, um Apache neu zu starten:

sudo /opt/bitnami/ctlscript.sh restart apache

t. Geben Sie in Ihrem Webbrowser die IP-Adresse Ihrer Instance ein (z. B. http://192.0.2.143).

„Hello, world“ wird angezeigt. Damit wird bestätigt, dass Ihre Anwendung ausgeführt wird.

Herzlichen Glückwunsch!

Herzlichen Glückwunsch, Sie haben das Tutorial abgeschlossen. Sie haben eine Django-basierte Anwendung in Lightsail bereitgestellt.

Amazon Lightsail ist eine hervorragende Option für die Entwicklung, Erstellung und Bereitstellung einer Vielzahl von Anwendungen, wie WordPress, Websites und Blog-Plattformen. 

War dieses Tutorial hilfreich?

Vielen Dank
Bitte teilen Sie uns mit, was Ihnen gefallen hat.
Schließen
Es tut uns Leid Sie zu enttäuschen
Ist etwas veraltet, verwirrend oder ungenau? Bitte helfen Sie uns, dieses Tutorial zu verbessern, indem Sie Feedback geben.
Schließen