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