GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie Django 3.2 auf Ubuntu 20.04 mit Apache und WSGI

Django ist ein Python-basiertes Web-Framework, das den Model-Template-Views (MTV) folgt. Django ist ein beliebtes Tool für die Webentwicklung, da es eine schnelle Entwicklung von Websites ermöglicht.

In diesem Tutorial zeigen wir Ihnen, wie Sie Django einrichten. Wir zeigen Ihnen die bevorzugte Produktionskonfiguration mit virtueller Umgebung.

Wenn Sie nach einem VPS suchen Anbieter zum Ausführen Ihrer Anwendungen, können Sie Interserver-Angebote prüfen.

Beginnen wir mit der Einrichtung.

1 1. Aktualisierung des Systems

sudo apt update -y && apt upgrade -y

2 2. Installation von pip und Virtual Environment

Überprüfen Sie zuerst die Python3-Version Ihres Systems.

# python3 -V
Python 3.8.10

Lassen Sie uns PIP und Venv installieren.

sudo apt install python3-pip python3-venv 

3 3. Erstellen Sie ein Projektverzeichnis

Lassen Sie uns ein Projektverzeichnis erstellen.

sudo mkdir /var/www/django

Wechseln Sie in das Projektverzeichnis.

cd /var/www/django

Lassen Sie uns eine virtuelle Umgebung erstellen.

python3 -m venv django_venv

Aktivieren Sie die virtuelle Umgebung.

source django_venv/bin/activate

4 4. Installation von Django 3.2

Wir werden Django mit PIP installieren.

(django_venv) pip install django==3.2

Überprüfen Sie die Installation.

(django_venv) django-admin --version
Output:
3.2

5 5. Erstellen eines Projekts

Lassen Sie uns ein Django-Projekt erstellen.

HINWEIS: Bitte vergessen Sie nicht, den Punkt (.) am Ende einzufügen, um zu viele verschachtelte Verzeichnisse zu vermeiden.

(django_venv) django-admin startproject myproject .

Nach dem Erstellen des Projekts müssen wir die Datenbank migrieren. Aber zuerst müssen wir eine MySQL/MariaDB-Datenbank erstellen, bevor wir die Migration durchführen. Wir sind davon ausgegangen, dass Sie bereits einen laufenden MySQL/MariaDb-Dienst haben.

Lassen Sie uns die Datenbank erstellen.

MariaDB [(none)]> create database django;
MariaDB [(none)]> grant all privileges on django.* to 'django'@'localhost' identified by 'mypassword';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Hinweis :Bitte vergessen Sie nicht, das Passwort zu ändern mit dem Passwort Ihrer Wahl.

Lassen Sie uns settings.py aktualisieren .

sudo nano myproject/settings.py

Die in Django eingestellte Standarddatenbank ist SQLite. Da wir eine Produktionsseite einrichten, werden wir sie aktualisieren, um MySQL/MariaDB zu verwenden.

Lassen Sie uns es mit unten aktualisieren:

DATABASES = {
    'default': {
        'ENGINE'  : 'django.db.backends.mysql',  
        'NAME'    : 'django',                 # database name
        'USER'    : 'django',                 # Mysql user    
        'PASSWORD': 'mypassword',             # Mysql password       
        'HOST'    : 'localhost',                
        'PORT'    : '3306',
    }
}

Bevor wir die Migration durchführen, lassen Sie uns zuerst mysql-config installieren .

Wenn Sie MySQL verwenden, führen Sie diesen Befehl aus.

sudo apt-get install libmysqlclient-dev

Wenn Sie MariaDB verwenden, führen Sie dies aus.

sudo apt-get install libmariadbclient-dev

Lassen Sie uns dann den Python-MySQL-Treiber installieren.

(django_venv) pip install mysqlclient

Lassen Sie uns nun die Migration ausführen.

(django_venv) python3 manage.py migrate
Output:

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying auth.0012_alter_user_first_name_max_length... OK
  Applying sessions.0001_initial... OK

6 6. Zugriff auf die Django-App

Bevor wir auf unsere Django-App zugreifen können, müssen wir unsere IP-Adresse oder Domain zu den ALLOWED_HOSTS in der settings.py hinzufügen . Lassen Sie uns settings.py aktualisieren.

sudo nano myproject/settings.py

Gehen Sie zu „ALLOWED_HOSTS ”-Abschnitt.

ALLOWED_HOSTS = ['your_server_ip', 'domain.com']

Aktualisieren Sie „your_server_ip “ und „domain.com ” mit Ihrer IP-Adresse und Domain dann speichern.

Bevor wir auf unsere Django-App zugreifen können, müssen wir diesen Befehl ausführen.

 python3 manage.py runserver 0.0.0.0:8000

Sie können jetzt unter http://IPaddress:8000 auf Ihre Django-App zugreifen

Lassen Sie uns einen Admin-Benutzer für unser Projekt erstellen

 (django_venv) python3 manage.py createsuperuser

Nachdem Sie den Befehl ausgeführt haben, geben Sie Ihren Admin-Benutzernamen, Ihre E-Mail-Adresse und Ihr Passwort ein.

7 7. Einrichten der Produktion mit Apache und WSGI

Um die Produktion einzurichten, werden wir Apache und das Apache mod_wsgi-Modul installieren.

sudo apt-get install apache2 libapache2-mod-wsgi-py3

Lassen Sie uns einen virtuellen Host erstellen.

sudo nano /etc/apache2/sites-available/django.conf

Fügen Sie dem virtuellen Host Folgendes hinzu.

Hinweis:Vergessen Sie nicht, die domain.com zu ersetzen mit eigener Domain.

<VirtualHost *:80>
        ServerName domain.com
        ServerAlias www.domain.com
        DocumentRoot /var/www/django
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        Alias /static/ /var/www/django/myproject/static/
        <Directory /var/www/django/myproject/static>
                Require all granted
        </Directory>

        Alias /media/ /var/www/django/myproject/media/
        <Directory /var/www/django/myproject/media>
                Require all granted
        </Directory>

        <Directory /var/www/django/myproject>
                <Files wsgi.py>
                        Require all granted
                </Files>
        </Directory>

        WSGIDaemonProcess mydjangoproject python-path=/var/www/django python-home=/var/www/django/django_venv
        WSGIProcessGroup mydjangoproject
        WSGIScriptAlias / /var/www/django/myproject/wsgi.py
</VirtualHost>

Lassen Sie uns den virtuellen Host aktivieren:

sudo a2ensite django.conf

Starten Sie den Apache-Webserver neu.

sudo systemctl restart apache2

Lassen Sie uns nun die settings.py erneut bearbeiten damit unser Webserver die statischen Dateien bereitstellen kann.

sudo nano myproject/settings.py

Fügen Sie oben in der Datei hinzu:

import os

Gehen Sie dann zum statische Dateien Abschnitt und stellen Sie sicher, dass Sie diese Werte hinzufügen:

PROJECT_ROOT =os.path.dirname(os.path.abspath(__file__))

STATIC_ROOT =os.path.join(PROJECT_ROOT, ‚statisch‘)

Es sollte wie unten aussehen.

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')

Lassen Sie uns nun alle statischen Inhalte sammeln.

(django_venv) python3 manage.py collectstatic
Output:
128 static files copied to '/var/www/django/myproject/static'.

Apache-Dienst neu starten:

sudo systemctl restart apache2

Damit ist die Produktionsstätte eingerichtet. Sie können jetzt mit Ihrer Domain unter http://domain.com auf Ihre Django-App zugreifen. Wenn Sie Ihre Website sichern und ein SSL-Zertifikat installieren möchten, lesen Sie diesen Artikel.

8 Fazit

Sie haben gelernt, wie Sie Django 3.2 auf Ubuntu 20.04 mit Apache und WSGI installieren. Wenn Ihnen dieser Artikel gefällt, gefallen Ihnen vielleicht auch unsere anderen Artikel auf dieser Seite.


Ubuntu
  1. So installieren und konfigurieren Sie Nextcloud mit Apache unter Ubuntu 18.04

  2. So installieren und sichern Sie phpMyAdmin mit Apache unter Ubuntu 18.04

  3. So installieren Sie die Ghost Blog-Software mit Apache und SSL unter Ubuntu 16.04

  4. So installieren Sie Apache Hive mit Hadoop auf CentOS, Ubuntu und LinuxMint

  5. So installieren Sie Apache Maven unter Ubuntu 18.04 und 16.04

So installieren und konfigurieren Sie das mod_pagespeed-Modul mit Apache unter Ubuntu 20.04 LTS

So installieren Sie die Ghost Blog-Software mit Apache und SSL unter Ubuntu 15.10

So installieren Sie Drupal 7 mit Apache unter Ubuntu 14.04

So installieren Sie PrestaShop auf Ubuntu 20.04 mit Apache

So installieren Sie phpBB mit Apache unter Ubuntu 20.04

So installieren Sie Drupal mit Apache auf Debian und Ubuntu