Sparen Sie 15% bei allen Hosting-Diensten

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code: Skills Anfangen
Abschnitte
Linux Verwaltung

Wie man Django auf einem Hosting-Server installiert: Eine vollständige Schritt-für-Schritt-Anleitung

Django ist ein hochmodernes Python-Web-Framework, das schnelle Entwicklung und sauberes, pragmatisches Design fördert. Es bleibt eine der beliebtesten Optionen für die Erstellung skalierbarer, sicherer und wartbarer Webanwendungen – von einfachen Blogs bis zu komplexen Enterprise-Plattformen. In diesem umfassenden Leitfaden führen wir Sie durch jeden Schritt, der erforderlich ist, um Django auf einem Hosting-Server zu installieren, von der Vorbereitung Ihrer Linux-Umgebung bis zum Ausführen Ihres ersten Projekts und dessen Vorbereitung für die Produktion.

Warum Django für Ihre Webanwendung wählen?

Bevor Sie sich in den Installationsprozess stürzen, lohnt es sich zu verstehen, warum Django weiterhin die Python-Webentwicklungslandschaft dominiert:

  • Alles inklusive: Django wird mit integrierter Authentifizierung, einem Admin-Panel, ORM, Formularverarbeitung und Sicherheitsfunktionen ab Werk geliefert.
  • Skalierbarkeit: Django betreibt hochfrequentierte Plattformen wie Instagram und Pinterest.
  • Sicherheit im Fokus: Django schützt standardmäßig vor häufigen Sicherheitslücken wie SQL-Injection, XSS, CSRF und Clickjacking.
  • Schnelle Entwicklung: Die Philosophie der Konvention vor Konfiguration ermöglicht es Entwicklern, Funktionen schneller bereitzustellen.
  • Großes Ökosystem: Tausende wiederverwendbarer Pakete und eine große Community bedeuten, dass Lösungen für fast jedes Problem bereits vorhanden sind.

Um das Beste aus Django herauszuholen, benötigen Sie eine zuverlässige Serverumgebung. Ein VPS Hosting Plan bietet Ihnen den Root-Zugriff, dedizierte Ressourcen und die Flexibilität, die Django-Anwendungen erfordern.

Voraussetzungen

Bevor Sie mit dem Installationsprozess beginnen, stellen Sie sicher, dass Sie über Folgendes verfügen:

  • Ein Hosting-Server mit einer Linux-Distribution (Ubuntu 20.04/22.04 oder Debian werden empfohlen)
  • SSH-Zugriff auf den Server mit sudo-Berechtigungen
  • Python 3.8 oder höher (Python 3.10+ empfohlen)
  • pip (Python-Paketmanager) installiert
  • Grundkenntnisse der Linux-Befehlszeile

> Pro-Tipp: Wenn Sie eine produktive Django-Anwendung ausführen, vermeiden Sie Shared-Hosting-Umgebungen. Ein VPS Hosting-Plan oder ein Dedicated Server geben Ihnen die Kontrolle und Leistung, die Ihre Anwendung benötigt.

Schritt 1: Verbindung zu Ihrem Server via SSH

Öffnen Sie Ihr Terminal und stellen Sie eine SSH-Verbindung zu Ihrem Hosting-Server her:

ssh username@server_ip

Ersetzen Sie username durch Ihren tatsächlichen Systembenutzernamen und server_ip durch die öffentliche IP-Adresse Ihres Servers. Wenn Sie einen benutzerdefinierten SSH-Port oder eine schlüsselbasierte Authentifizierungsdatei verwenden, passen Sie den Befehl entsprechend an:

ssh -i /path/to/your/key.pem username@server_ip

Nach der Verbindung haben Sie eine Befehlszeilenschnittstelle zu Ihrem Server, wo Sie den Setup-Prozess beginnen können.

Schritt 2: Aktualisieren Sie Ihr System und installieren Sie Python & pip

Die Aktualisierung Ihrer Systempakete ist ein kritischer erster Schritt für Sicherheit und Kompatibilität.

Aktualisieren Sie den Paketindex

sudo apt update && sudo apt upgrade -y

Installieren Sie Python 3 und pip

Die meisten modernen Ubuntu- und Debian-Distributionen werden mit Python 3 vorinstalliert geliefert. Überprüfen Sie zunächst Ihre Python-Version:

python3 --version

Wenn Python 3 nicht installiert ist oder Sie pip benötigen, installieren Sie diese mit:

sudo apt install python3 python3-pip -y

Überprüfen Sie die Installationen:

python3 --version
pip3 --version

Sie sollten Versionsnummern sehen, die bestätigen, dass beide Tools verfügbar sind.

Schritt 3: Einrichten einer Python Virtual Environment

Die Verwendung einer virtuellen Umgebung ist nicht nur empfohlen — sie gilt als Best Practice für jedes Python-Projekt. Virtuelle Umgebungen isolieren die Abhängigkeiten Ihres Projekts von der systemweiten Python-Installation und von anderen Projekten auf demselben Server, wodurch Versionskonflikte vermieden und Ihre Umgebung sauber gehalten wird.

virtualenv installieren

sudo pip3 install virtualenv

Alternativ können Sie das integrierte venv Modul von Python verwenden (verfügbar in Python 3.3+):

sudo apt install python3-venv -y

Erstellen Sie Ihr Projektverzeichnis und die Virtual Environment

Navigieren Sie zu dem Verzeichnis, in dem Sie Ihr Projekt hosten möchten, oder erstellen Sie ein neues:

mkdir myproject
cd myproject

Erstellen Sie nun die virtuelle Umgebung in Ihrem Projektverzeichnis:

virtualenv venv

Oder mit dem integrierten venv Modul:

python3 -m venv venv

Aktivieren Sie die Virtual Environment

source venv/bin/activate

Nach der Aktivierung ändert sich Ihre Eingabeaufforderung, um den Namen der virtuellen Umgebung anzuzeigen, zum Beispiel:

(venv) username@server:~/myproject$

Alle pip install Befehle, die während der aktiven virtuellen Umgebung ausgeführt werden, installieren Pakete nur in dieser isolierten Umgebung. Um sie jederzeit zu deaktivieren, führen Sie einfach aus:

deactivate

Schritt 4: Django installieren

Installieren Sie Django mit pip, während Ihre virtuelle Umgebung aktiv ist:

pip install django

Um eine bestimmte Version von Django zu installieren (empfohlen für die Produktion, um Kompatibilität zu gewährleisten):

pip install django==4.2

Überprüfen Sie die Installation:

django-admin --version

Sie sollten die installierte Django-Versionsnummer im Terminal angezeigt bekommen.

Schritt 5: Ein neues Django-Projekt erstellen

Verwenden Sie das integrierte django-admin Befehlszeilentool von Django, um ein neues Projekt zu erstellen:

django-admin startproject myproject .

> Hinweis: Der nachfolgende Punkt (.) teilt Django mit, dass die Projektdateien im aktuellen Verzeichnis erstellt werden sollen, anstatt ein verschachteltes Unterverzeichnis zu erstellen. Dies ist eine sauberere Struktur für die meisten Bereitstellungen.

Ihr Projektverzeichnis enthält nun die folgende Struktur:

myproject/
├── manage.py
└── myproject/
    ├── __init__.py
    ├── asgi.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py
  • manage.py — Ein Befehlszeilenprogramm für die Interaktion mit Ihrem Django-Projekt.
  • settings.py — Die zentrale Konfigurationsdatei für Ihr Projekt.
  • urls.py — Die URL-Routing-Konfiguration.
  • wsgi.py / asgi.py — Einstiegspunkte für WSGI- und ASGI-kompatible Webserver.

Schritt 6: Datenbankeinstellungen konfigurieren

Öffnen Sie die settings.py Datei, um Ihre Datenbankverbindung zu konfigurieren:

nano myproject/settings.py

Standard: SQLite (nur Entwicklung)

Standardmäßig ist Django für die Verwendung von SQLite konfiguriert, was für Entwicklung und Tests geeignet ist, aber nicht für die Produktion empfohlen:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

Produktionsoption: PostgreSQL

PostgreSQL ist die am häufigsten empfohlene Datenbank für Django in der Produktion. Installieren Sie zunächst die erforderlichen Pakete:

sudo apt install postgresql postgresql-contrib libpq-dev -y
pip install psycopg2-binary

Aktualisieren Sie dann die DATABASES Einstellung in settings.py:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'mydatabase',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '5432',
    }
}

Produktionsoption: MySQL / MariaDB

Wenn Sie MySQL oder MariaDB bevorzugen, installieren Sie den erforderlichen Adapter:

sudo apt install default-libmysqlclient-dev -y
pip install mysqlclient

Konfigurieren Sie dann die DATABASES Einstellung:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mydatabase',
        'USER': 'myuser',
        'PASSWORD': 'mypassword',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

ALLOWED_HOSTS konfigurieren

Aktualisieren Sie auch in settings.py die ALLOWED_HOSTS Einstellung, um die IP-Adresse oder den Domänennamen Ihres Servers einzubeziehen. Dies ist erforderlich, damit Django Anfragen im Nicht-Debug-Modus verarbeitet:

ALLOWED_HOSTS = ['your_server_ip', 'yourdomain.com', 'www.yourdomain.com']

Schritt 7: Datenbankmigration anwenden

Django verwendet ein Migrationssystem zur Verwaltung von Datenbankschemaänderungen. Führen Sie die anfänglichen Migrationen aus, um alle erforderlichen Datenbanktabellen zu erstellen:

python manage.py migrate

Sie sehen eine Ausgabe, die jede angewendete Migration auflistet. Eine erfolgreiche Migration sieht wie folgt aus:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  ...

Superuser erstellen (Optional, aber empfohlen)

Erstellen Sie ein Admin-Konto, um auf Djangos integrierte Admin-Schnittstelle zuzugreifen:

python manage.py createsuperuser

Sie werden aufgefordert, einen Benutzernamen, eine E-Mail-Adresse und ein Passwort einzugeben.

Schritt 8: Den Django-Entwicklungsserver ausführen

Sie können nun Djangos integrierten Entwicklungsserver starten, um Ihre Installation zu überprüfen:

python manage.py runserver 0.0.0.0:8000

Dieser Befehl bindet den Entwicklungsserver an alle verfügbaren Netzwerkschnittstellen auf Port 8000. Öffnen Sie Ihren Webbrowser und navigieren Sie zu:

http://your_server_ip:8000

Sie sollten die Django-Willkommensseite sehen — ein Raumschiff mit der Meldung „The install worked successfully! Congratulations!”

Um auf das Admin-Panel zuzugreifen, navigieren Sie zu:

http://your_server_ip:8000/admin

> Wichtig: Djangos integrierten Entwicklungsserver ist nicht für die Produktion geeignet. Er ist Single-threaded, nicht für Leistung optimiert und verfügt nicht über Sicherheitshärtung. Verwenden Sie immer einen produktionsgerechten Webserver für Live-Bereitstellungen.

Schritt 9: Django für die Produktion vorbereiten (Empfohlen)

Für Produktionsbereitstellungen müssen Sie einen ordnungsgemäßen Web-Server-Stack konfigurieren. Das häufigste und empfohlene Setup ist Nginx + Gunicorn.

Gunicorn installieren

Mit Ihrer aktiven virtuellen Umgebung:

pip install gunicorn

Testen Sie, dass Gunicorn Ihre Anwendung bereitstellen kann:

gunicorn --bind 0.0.0.0:8000 myproject.wsgi

Nginx installieren und konfigurieren

sudo apt install nginx -y

Erstellen Sie eine Nginx-Server-Block-Konfigurationsdatei:

sudo nano /etc/nginx/sites-available/myproject

Fügen Sie die folgende Konfiguration hinzu:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {
        root /home/username/myproject;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

Aktivieren Sie die Konfiguration und starten Sie Nginx neu:

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Statische Dateien sammeln

Aktualisieren Sie settings.py mit dem Verzeichnis für statische Dateien:

STATIC_ROOT = BASE_DIR / 'staticfiles'

Sammeln Sie dann alle statischen Dateien:

python manage.py collectstatic

Sichern Sie Ihre Anwendung mit SSL

Für jede Django-Anwendung in der Produktion ist HTTPS unverzichtbar. Ein SSL-Zertifikat verschlüsselt Daten während der Übertragung zwischen Ihrem Server und Ihren Benutzern, schützt vertrauliche Informationen und ist erforderlich für moderne Browser-Vertrauensindikatoren. AlexHost bietet SSL-Zertifikate, die sich nahtlos in Ihre Hosting-Umgebung integrieren.

Zusätzliche Produktionsüberlegungen

Umgebungsvariablen für vertrauliche Einstellungen

Hardcodieren Sie niemals vertrauliche Werte wie SECRET_KEY, Datenbankpasswörter oder API-Schlüssel in settings.py. Verwenden Sie stattdessen Umgebungsvariablen:

pip install python-decouple

In settings.py:

from decouple import config

SECRET_KEY = config('SECRET_KEY')
DEBUG = config('DEBUG', default=False, cast=bool)

DEBUG in der Produktion auf False setzen

DEBUG = False

Das Ausführen mit DEBUG = True in der Produktion stellt detaillierte Fehlerseiten und vertrauliche Konfigurationsinformationen für potenzielle Angreifer bereit.

Konfigurieren Sie einen Domainnamen

Wenn Sie noch keine Domain für Ihr Django-Projekt registriert haben, macht Domain-Registrierung durch AlexHost es einfach, Ihre Domain schnell auf Ihren Server zu verweisen, mit vollständiger DNS-Verwaltung inbegriffen.

Auswahl des richtigen Hostings für Ihre Django-Anwendung

Die Hosting-Umgebung, die Sie wählen, hat einen großen Einfluss auf die Leistung, Zuverlässigkeit und Skalierbarkeit Ihrer Django-Anwendung. Hier ist ein kurzer Leitfaden:

AnwendungsfallEmpfohlenes Hosting
Entwicklung & TestsShared Web Hosting
Kleine bis mittlere Produktions-AppsVPS Hosting
Apps mit hohem Traffic oder ressourcenintensivDedicated Servers
Machine Learning / KI-integrierte Django-AppsGPU Hosting

Für die meisten Django-Projekte, die in die Produktion gehen, bietet ein VPS Hosting-Plan die ideale Balance zwischen Leistung, Kontrolle und Kosteneffizienz. Sie erhalten Root-Zugriff, die Möglichkeit, jeden Software-Stack zu installieren, und dedizierte Ressourcen, die Shared Hosting nicht bieten kann.

Troubleshooting Common Django Installation Issues

pip: command not found

Installieren Sie pip manuell: sudo apt install python3-pip -y

django-admin: command not found

Ihre virtuelle Umgebung ist möglicherweise nicht aktiviert. Führen Sie source venv/bin/activate aus und versuchen Sie es erneut.

Port 8000 nicht erreichbar

Überprüfen Sie die Firewall-Regeln Ihres Servers. Unter Ubuntu mit UFW:

sudo ufw allow 8000
sudo ufw reload

Datenbankverbindung abgelehnt

Stellen Sie sicher, dass Ihr Datenbankdienst ausgeführt wird:

sudo systemctl status postgresql
# or
sudo systemctl status mysql

ALLOWED_HOSTS Fehler

Stellen Sie sicher, dass die IP-Adresse oder der Domänenname Ihres Servers in der Einstellung ALLOWED_HOSTS in settings.py aufgelistet ist.

Fazit

Sie haben Django nun erfolgreich auf Ihrem Hosting-Server installiert, eine virtuelle Umgebung konfiguriert, Ihre Datenbank eingerichtet und gelernt, wie Sie Ihre Anwendung für die Produktion vorbereiten. Djangos umfangreiche Funktionen, starke Sicherheitsstandards und riesiges Ökosystem machen es zu einer ausgezeichneten Wahl für Web-Entwicklungsprojekte jeder Größe.

Verwenden Sie für Produktionsbereitstellungen immer einen ordnungsgemäßen Web-Server-Stack (Nginx + Gunicorn oder Apache + uWSGI), setzen Sie DEBUG = False, sichern Sie Ihre Anwendung mit einem SSL Certificate, und wählen Sie eine Hosting-Umgebung, die den Ressourcenanforderungen Ihrer Anwendung entspricht. Egal ob Sie ein neues Projekt starten oder ein bestehendes skalieren, AlexHosts VPS Hosting und Dedicated Server Pläne bieten die Leistung, Zuverlässigkeit und Flexibilität, die Ihre Django-Anwendung verdient.