Eine Django-Anwendung auf Webhosting oder Managed Server bei Hetzner ausführen

0 Aktien
0
0
0
0

Einführung

In diesem Tutorial lernen wir, wie man eine Python-Django-Anwendung auf Hetzner-Webhosting- oder Managed-Server-Servern ausführt. Django ist ein Python-Webframework. Standardmäßig läuft das Framework über WSGI (Web Server Application Interface), jedoch ist mod_wsgi auf einem verwalteten Apache-Server nicht verfügbar. Es gibt jedoch verschiedene Möglichkeiten, WSGI in andere kompatible Schnittstellen zu konvertieren.

Voraussetzungen
  • Webhosting mit SSH-Unterstützung (Version 9 oder höher) oder Managed Server mit aktiviertem SSH-Zugriff.

Schritt 1 – Abhängigkeiten installieren

Schritt 1.1 – Installieren und aktivieren Sie virtualenv
pip3 install --break-system-packages virtualenv mkdir /usr/home/holu/virtualenvs python3 -m virtualenv /usr/home/holu/virtualenvs/example_com . /usr/home/holu/virtualenvs/example_com/bin/activate
Schritt 1.2 – Django installieren
pip install django
Schritt 1.3 – Flup installieren (optional, für FastCGI erforderlich)
pip install flup

Schritt 2 – Django-Projekt erstellen und konfigurieren

Schritt 2.1 – Projektstart
mkdir /usr/home/holu/djangoprojects env -C "/usr/home/holu/djangoprojects" django-admin startproject example_com
Schritt 2.2 – Projektkonfiguration

Alle angeforderten Domänen an die Variable ZUGELASSENE_HOSTS Ergänzen Sie dies, um es zugänglich zu machen.

vim /home/holu/djangoprojects/example_com/example_com/settings.py

Durch Schlagen ICH Wechseln Sie in den “Importmodus” und fügen Sie alle angeforderten Domains hinzu:

ALLOWED_HOSTS = ['example.com']

Durch Schlagen Esc Zurück in den "Befehlsmodus" und :wq Zum Speichern und Beenden die Eingabetaste drücken.

Schritt 3 – Vorbereiten des Dokumentenstamms des Webservers

Erstellen Sie ein leeres Website-Verzeichnis und ändern Sie das Dokumentenstammverzeichnis in konsoleH.

mkdir -p /usr/home/holu/public_html/example_com
Option 1 – FastCGI

Erstellen Sie eine .htaccess-Datei.

vim /usr/home/holu/public_html/example_com/.htaccess

Durch Schlagen ICH Wechseln Sie in den “Importmodus” und geben Sie folgenden Inhalt ein:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ djangoapp.fcgi/$1 [QSA,L]
</IfModule>

Durch Schlagen Esc Zurück in den "Befehlsmodus" und :wq Zum Speichern und Beenden die Eingabetaste drücken.

.fcgi-Skript erstellen

vim /usr/home/holu/public_html/example_com/djangoapp.fcgi
#!/usr/home/holu/virtualenvs/example_com/bin/python
import sys
import os
import django
from flup.server.fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
sys.path.append("/usr/home/holu/djangoprojects/example_com")
os.environ['DJANGO_SETTINGS_MODULE']="example_com.settings"
django.setup(set_prefix=False)
WSGIServer(WSGIHandler()).run()

Setzen Sie die Ausführungsberechtigung für den Besitzer:

chmod 744 /usr/home/holu/public_html/example_com/djangoapp.fcgi
Option 2 – CGI

Erstellen Sie eine .htaccess-Datei.

vim /usr/home/holu/public_html/example_com/.htaccess

Durch Schlagen ICH Wechseln Sie in den “Importmodus” und geben Sie folgenden Inhalt ein:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ djangoapp.cgi/$1 [QSA,L]
</IfModule>

Durch Schlagen Esc Zurück in den "Befehlsmodus" und :wq Zum Speichern und Beenden die Eingabetaste drücken.

Erstellen eines .cgi-Skripts

vim /usr/home/holu/public_html/example_com/djangoapp.cgi
#!/usr/home/holu/virtualenvs/example_com/bin/python
import sys
import os
import django
import wsgiref.handlers
from django.core.handlers.wsgi import WSGIHandler
sys.path.append("/usr/home/holu/djangoprojects/example_com")
os.environ['DJANGO_SETTINGS_MODULE']="example_com.settings"
django.setup(set_prefix=False)
wsgiref.handlers.CGIHandler().run(WSGIHandler())

Setzen Sie die Ausführungsberechtigung für den Besitzer:

chmod 744 /usr/home/holu/public_html/example_com/djangoapp.cgi

Schritt 4 – Testen

Zum Testen besuchen Sie Ihre Domain. Sie sollten etwas Ähnliches wie das untenstehende Bild sehen:

Ergebnis

Jetzt können Sie Ihre Django-Anwendungen auf einem verwalteten Betriebssystem bereitstellen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Das könnte Ihnen auch gefallen
Amazon S3 Cloud-Speicher

Was ist Amazon S3? Ein Expertenbericht über Amazons Cloud-Speicherdienst.

In der heutigen Technologiewelt werden ständig riesige Datenmengen generiert und übertragen. Unternehmen, Entwickler und Nutzer benötigen eine zuverlässige, skalierbare und jederzeit verfügbare Plattform. Amazon S3 (Simple Storage Service) ist in diesem Zusammenhang ein beliebter AWS-Service, der das Speichern und Verwalten von Daten vereinfacht und sicherer macht.