GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Installieren Sie das Django Python Framework auf Rocky Linux 8 / CentOS 8

Django ist ein kostenloses Open-Source-Webframework auf hoher Ebene, das zur Entwicklung von Python-Webanwendungen verwendet wird. Django wird mit einer Reihe von Tools geliefert, mit denen Sie sichere und skalierbare Webanwendungen erstellen können. Sein Hauptzweck besteht darin, die Erstellung komplexer Anwendungen zu erleichtern und die interne Struktur aufrechtzuerhalten.

In diesem Tutorial lernen wir, wie man Django installiert und Nginx als Reverse-Proxy für Django unter Rocky Linux 8 und CentOS 8 konfiguriert.

Voraussetzung

  • Server mit Betriebssystem CentOS 8.
  • Melden Sie sich als Root oder Benutzer mit Privilegien an sudo

Erforderliche Pakete installieren

Django ist ein Python-basiertes Framework, daher müssen Sie Python und PIP auf Ihrem System installieren. Um es installieren zu können, führen Sie den folgenden Befehl aus:

dnf install python36 python3-pip -y 

Sobald beide Pakete installiert sind, fahren Sie mit dem nächsten Schritt fort.

Installieren Sie Django auf Rocky Linux 8

Sie können Django mit dem PIP-Befehl wie unten gezeigt installieren:

pip3 install Django 

Überprüfen Sie nach der Installation von Django die Django-Version mit dem folgenden Befehl:

django-admin --version 

Sie sehen die Django-Version in der folgenden Ausgabe:

3.0.3 

Zum Zeitpunkt der Erstellung dieses Artikels war die Version von Django Version 3.0.3

Erstellen Sie ein Django-Projekt

Zu diesem Zeitpunkt wurde Django erfolgreich installiert. Jetzt ist es an der Zeit, eine Django-App zu erstellen.

Sie können Django-Anwendungen mit dem Befehl django-admin im Verzeichnis /opt erstellen wie unten gezeigt:

cd /opt
 django-admin startproject djangoproject 

Sobald das Django-Projekt erstellt ist, ändern Sie das Verzeichnis in djangoproject und migrieren Sie Änderungen mit dem folgenden Befehl:

cd djangoproject
 python3 manage.py migrate 

Sie erhalten die folgende Ausgabe:

Durchzuführende Vorgänge:Alle Migrationen anwenden:admin, auth, contenttypes, sessionsRunning migrations:Applying contenttypes.0001_initial... OK Applying auth.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add.. OK admin.0003_logentry_add_action_flag_choices wird angewendet... OK contenttypes.0002_remove_content_type_name wird angewendet... OK auth.0002_alter_permission_name_max_length wird angewendet... OK auth.0003_alter_user_email_max_length wird angewendet... OK auth.0004_alter_user_username_opts wird angewendet... OK auth.0004_alter_user_username_opts wird angewendet... OK auth.00 wird angewendet auth.0006_require_contenttypes_0002 wird angewendet... OK auth.0007_alter_validators_add_error_messages wird angewendet... OK auth.0008_alter_user_username_max_length wird angewendet... OK auth.0009_alter_user_last_name_max_length wird angewendet... OK auth.0009_alter_user_last_name_max_length wird angewendet... OK auth.0010_alter_group_name_oxy_prmission_length wird angewendet... OK1permission_update wird angewendet... OK1 auth.00 wird angewendet .0001_initial... OK 

Als Nächstes müssen Sie ein Admin-Benutzerkonto erstellen, um Ihr Django-Projekt mit dem folgenden Befehl zu verwalten:

python3 manage.py createsuperuser 

Sie werden aufgefordert, Ihren Benutzernamen, Ihre E-Mail-Adresse und Ihr Passwort anzugeben. Sie können es wie unten gezeigt nach Ihrer Wahl bereitstellen:

Benutzername (leer lassen, um „root“ zu verwenden):dadminE-Mail-Adresse:[E-Mail-geschützt] Passwort:Passwort (erneut):Superuser erfolgreich erstellt. 

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Starten Sie die Django-App

Standardmäßig kann auf Django-Anwendungen nur von localhost aus zugegriffen werden. Damit Django eine Verbindung zum Internet herstellt, müssen Sie Django für externe Hosts zulassen. Sie können dies tun, indem Sie Ihre Server-IP in IP settings.py: hinzufügen

nano /opt/djangoproject/djangoproject/settings.py 

Ändern Sie die folgende Zeile:

ALLOWED_HOSTS =['ip_server_Anda'] 

Speichern und schließen Sie die Datei. Führen Sie dann die Django-Anwendung mit dem folgenden Befehl aus:

cd /opt/djangoproject
 python3 manage.py runserver 0.0.0.0:8000 

Sie sehen die folgende Ausgabe:

Überwachung von Dateiänderungen mit StatReloaderDurchführung von Systemprüfungen...Systemprüfung ergab keine Probleme (0 stummgeschaltet).03. März 2020 - 02:31:19Django Version 3.0.3, unter Verwendung der Einstellungen 'djangoproject.settings'Entwicklungsserver starten um http://0.0.0.0:8000/Beenden Sie den Server mit CONTROL-C. Die Django-Anwendung wird nun gestartet und läuft auf Port 8000. 

An diesem Punkt ist die Django-Anwendung nun auf Port 8000 betriebsbereit. Sie können jetzt mit dem nächsten Schritt fortfahren.

Konfigurieren Sie SELinux und Firewall auf Rocky Linux 8

Als nächstes müssen Sie die Ports 8000 und 80 durch die Firewall zulassen. Sie können sie mit dem folgenden Befehl zulassen:

firewall-cmd --permanent --add-port=8000/tcp
 firewall-cmd --permanent --add-port=80/tcp
 firewall-cmd --reload 

Als nächstes konfigurieren Sie SELinux mit dem folgenden Befehl:

setsebool httpd_can_network_connect on -P 

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Zugriff auf Django-Anwendungen

Sie können auf die Django-Anwendung zugreifen, indem Sie die URL http://your-server-ip:8000 besuchen. Sie sehen die folgende Seite:

Sie können auch über die URL http://server-ip:8000/admin auf die Verwaltungsoberfläche von Django zugreifen. Sie sehen die folgende Seite:

Geben Sie den Admin-Benutzernamen und das Passwort ein und klicken Sie auf die Schaltfläche Log in . Sie sehen die folgende Seite:

Installieren Sie Nginx und Gunicorn auf Rocky Linux 8

In diesem Abschnitt installieren wir Gunicorn zum Erstellen und Verwalten von Django-Diensten und Nginx zum Bereitstellen von Django-Anwendungen.

Installieren Sie zuerst Nginx mit dem folgenden Befehl:

dnf install nginx -y 

Als nächstes installieren Sie Gunicorn mit dem PIP-Befehl wie unten gezeigt:

pip3 install gunicorn 

Sobald beide Pakete installiert sind, starten Sie den Nginx-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:

systemctl start nginx
 systemctl enable nginx 

Ändern Sie als Nächstes den Eigentümer des Verzeichnisses /opt/djangoproject zu Nginx wie unten gezeigt:

chown -R nginx:nginx /opt/djangoproject 

Dateisystemdienst für Django erstellen

Erstellen Sie als Nächstes eine systemd-Dienstdatei, um die Django-Dienste mit dem folgenden Befehl zu verwalten:

nano /etc/systemd/system/django.service 

Fügen Sie die folgende Zeile hinzu:

[Unit]Description=django daemonAfter=network.target[Service]User=nginxGroup=nginxWorkingDirectory=/opt/djangoprojectExecStart=/usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/ djangoproject.sock djangoproject.wsgi:application[Install]WantedBy=multi-user.target 

Speichern und schließen Sie die Datei und laden Sie dann den systemd-Daemon mit dem folgenden Befehl neu:

systemctl daemon-reload 

Starten Sie als Nächstes den Django-Dienst und aktivieren Sie ihn nach dem Systemneustart mit dem folgenden Befehl:

systemctl start django
 systemctl enable django 

Sie können jetzt den Status des Django-Dienstes mit dem folgenden Befehl überprüfen:

systemctl status django 

Sie sehen die folgende Ausgabe:

? django.service - django-Daemon Geladen:geladen (/etc/systemd/system/django.service; deaktiviert; Herstellervoreinstellung:deaktiviert) Aktiv:aktiv (läuft) seit Mo 2020-03-02 22:27:51 UTC; Vor 3min 32s Main PID:960 (django) Tasks:4 (limit:25028) Memory:95.2M CGroup:/system.slice/django.service ??960 /usr/bin/python3.6 /usr/local/bin/ gunicorn --workers 3 --bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a> ??964 /usr/bin/python3.6 /usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a> ??965 /usr/bin/python3.6 /usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/djangoproject .sock djangoproject.wsgi:a> ??966 /usr/bin/python3.6 /usr/local/bin/gunicorn --workers 3 --bind unix:/opt/djangoproject/djangoproject.sock djangoproject.wsgi:a> 2. März 22:27:51 centos8 systemd[1]:Django-Daemon gestartet. 2. März 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [960] [INFO] Starten von Django 20.0.4Mar 02 22:27:52 Centos8 django[960]:[2020-03-02 22:27:52 -0500] [960] [INFO] Abhören unter:unix:/opt/djangoproject/djangoproject.sock (960)März 02 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [960] [INFO] Using worker:syncMar 02 22:27:52 centos8 django[960]:[2020-03-02 22 :27:52 -0500] [964] [INFO] Booting worker with pid:964Mar 02 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [965] [INFO ] Booting worker with pid:965Mar 02 22:27:52 centos8 django[960]:[2020-03-02 22:27:52 -0500] [966] [INFO] Booting worker with pid:966h pid:966

Nginx für Django konfigurieren

Als nächstes konfigurieren Sie Nginx als Reverse-Proxy für Django. Erstellen Sie dazu mit dem folgenden Befehl eine neue Nginx-Konfigurationsdatei:

nano /etc/nginx/conf.d/django.conf 

Fügen Sie die folgende Zeile hinzu:

server {listen 80; server_name your-server-ip location =https://cdn.linuxid.net/favicon.ico?x87109 { access_log off; log_not_found aus; } location /static/ { root /opt/djangoproject; } location / { proxy_set_header Host $http_host; Proxy_Set_Header X-Real-IP $remote_addr; Proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $schema; Proxy_pass http://unix:/opt/djangoproject/djangoproject.sock; }} 

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Testen Sie dann nginx mit dem folgenden Befehl auf Syntaxfehler:

nginx -t 

Wenn keine Fehler vorliegen, wird die folgende Ausgabe angezeigt:

nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist oknginx:Der Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich 

Starten Sie als Nächstes den Nginx-Dienst neu, um die Änderungen zu implementieren:

systemctl start nginx 

Sie können Nginx auch mit dem folgenden Befehl verifizieren:

systemctl status nginx 

Sie erhalten die folgende Ausgabe:

? nginx.service - Der nginx HTTP- und Reverse-Proxy-Server Geladen:geladen (/usr/lib/systemd/system/nginx.service; deaktiviert; Herstellervoreinstellung:deaktiviert) Aktiv:aktiv (läuft) seit Mo 2020-03-02 22:28:13 EST; Vor 4min 14s Prozess:984 ExecStart=/usr/sbin/nginx (code=beendet, status=0/SUCCESS) Prozess:982 ExecStartPre=/usr/sbin/nginx -t (code=beendet, status=0/SUCCESS) Prozess :980 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID:985 (nginx) Tasks:3 (limit:25028) Memory:5.5M CGroup:/system.slice/nginx.service ??985 nginx:Masterprozess /usr/sbin/nginx ??986 nginx:Arbeitsprozess ??987 nginx:ArbeitsprozessMar 02 22:28:12 centos8 systemd[1]:Starten von nginx HTTP- und Reverse-Proxy-Server ... 2. März 22:28:12 Centos8 nginx[982]:nginx:Die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist in Ordnung 2. März 22:28:12 Centos8 nginx[982]:nginx :Konfigurationsdatei /etc/nginx/nginx.conf Test ist erfolgreich Mar 02 22:28:13 centos8 systemd[1]:Started The nginx HTTP and reverse proxy server.

Sie können jetzt über die URL http://server_IP_address.

auf Django-Anwendungen zugreifen

Schlussfolgerung

In diesem Handbuch haben wir gelernt, wie man Django auf Rocky Linux 8 und CentOS 8 installiert. Wir haben auch gelernt, wie man mit Gunicorn Django-Dienste erstellt und verwaltet und Nginx als Reverse-Proxy konfiguriert, um Django-Anwendungen bereitzustellen.


Cent OS
  1. So installieren Sie Mysql 8 auf Rocky Linux/Centos 8

  2. So installieren und konfigurieren Sie Redis 6 unter Rocky Linux/Centos 8

  3. So installieren Sie Java 17 auf Rocky Linux 8/Centos 8

  4. So installieren Sie Erlang auf Rocky Linux/Alma Linux/CentOS 8

  5. So installieren Sie Python 2.7 oder Python 3.x + Django 1.8 + auf CentOS 6 + cPanel

So installieren Sie Python 3.9 auf Rocky Linux 8

So installieren Sie VirtualBox unter Rocky Linux 8 / CentOS 8 / RHEL 8

So installieren Sie Apache Maven unter Rocky Linux / CentOS 8

So installieren Sie Spotify unter CentOS 8 / Rocky Linux

So installieren Sie Rabbitmq in Rocky Linux/Alma Linux/Centos 8

So installieren Sie Python 3.9 unter Rocky Linux