GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Django 3.2 na Ubuntu 20.04 s Apache a WSGI

Django je webový rámec založený na Pythonu, který se řídí modelem šablony zobrazení (MTV). Django je oblíbený nástroj pro vývoj webových stránek, protože umožňuje rychlý vývoj webových stránek.

V tomto tutoriálu vás provedeme, jak nastavit Django. Provedeme vás nejpreferovanějším produkčním nastavením s virtuálním prostředím.

Pokud hledáte VPS poskytovatele pro spouštění vašich aplikací, můžete zkontrolovat nabídky interserveru.

Začněme nastavením.

1 1. Aktualizace systému

sudo apt update -y && apt upgrade -y

2 2. Instalace pipu a virtuálního prostředí

Nejprve zkontrolujte verzi Python3 vašeho systému.

# python3 -V
Python 3.8.10

Nechte nás nainstalovat PIP a Venv.

sudo apt install python3-pip python3-venv 

3 3. Vytvořte adresář projektu

Pojďme vytvořit adresář projektu.

sudo mkdir /var/www/django

Změňte adresář na adresář projektu.

cd /var/www/django

Pojďme vytvořit virtuální prostředí.

python3 -m venv django_venv

Aktivujte virtuální prostředí.

source django_venv/bin/activate

4 4. Instalace Django 3.2

Nainstalujeme Django s PIP.

(django_venv) pip install django==3.2

Ověřte instalaci.

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

5 5. Vytvoření projektu

Pojďme vytvořit projekt Django.

POZNÁMKA: Nezapomeňte na konec přidat tečku (.), abyste se vyhnuli příliš mnoha vnořeným adresářům.

(django_venv) django-admin startproject myproject .

Po vytvoření projektu musíme provést migraci databáze. Nejprve však musíme vytvořit databázi MySQL/MariaDB, než provedeme migraci. Předpokládali jsme, že již máte spuštěnou službu MySQL/MariaDb.

Pojďme vytvořit databázi.

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;

Poznámka :Prosím, nezapomeňte změnit heslo s heslem dle vašeho výběru.

Aktualizujte settings.py .

sudo nano myproject/settings.py

Výchozí databáze nastavená v Django je SQLite. Protože nastavujeme produkční web, aktualizujeme jej tak, aby používal MySQL/MariaDB.

Dovolte nám jej aktualizovat pomocí níže:

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

Než spustíme migraci, nejprve nainstalujme mysql-config .

Pokud používáte MySQL, spusťte tento příkaz.

sudo apt-get install libmysqlclient-dev

Pokud používáte MariaDB, spusťte toto.

sudo apt-get install libmariadbclient-dev

Poté nainstalujme ovladač Python MySQL.

(django_venv) pip install mysqlclient

Nyní spusťte migraci.

(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. Přístup k aplikaci Django

Než budeme mít přístup k naší aplikaci Django, musíme přidat naši IP adresu nebo doménu do ALLOWED_HOSTS v settings.py . Nechte nás aktualizovat settings.py.

sudo nano myproject/settings.py

Přejděte na „ALLOWED_HOSTS “.

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

Aktualizujte „ip_vašeho_serveru “ a „domena.com ” s vaší IP adresou a doménou a poté uložte.

Než budeme mít přístup k naší aplikaci Django, musíme tento příkaz spustit.

 python3 manage.py runserver 0.0.0.0:8000

Nyní můžete přistupovat ke své aplikaci Django na adrese http://IPaddress:8000

Dovolte nám vytvořit uživatele Admin pro náš projekt

 (django_venv) python3 manage.py createsuperuser

Po spuštění příkazu zadejte své uživatelské jméno, e-mail a heslo správce.

7 7. Nastavení produkce pomocí Apache a WSGI

Pro nastavení produkce nainstalujeme Apache a modul Apache mod_wsgi.

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

Pojďme vytvořit virtuálního hostitele.

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

Přidejte následující do virtuálního hostitele.

Poznámka:Nezapomeňte nahradit doménu.com s vlastní doménou.

<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>

Nechte nás aktivovat virtuálního hostitele:

sudo a2ensite django.conf

Restartujte webový server Apache.

sudo systemctl restart apache2

Nyní znovu upravme settings.py aby náš webový server obsluhoval statické soubory.

sudo nano myproject/settings.py

Na začátek souboru přidejte:

import os

Poté přejděte na statické soubory a nezapomeňte přidat tyto hodnoty:

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

STATIC_ROOT =os.path.join(PROJECT_ROOT, ‘statický’)

Mělo by to vypadat níže.

# 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')

Nyní shromážděme veškerý statický obsah.

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

Restartujte službu Apache:

sudo systemctl restart apache2

Tím bylo vytvořeno výrobní místo. Nyní můžete přistupovat ke své aplikaci Django se svou doménou na adrese http://domain.com. Pokud chcete zabezpečit svůj web a nainstalovat certifikát SSL, můžete si přečíst tento článek.

8 Závěr

Naučili jste se, jak nainstalovat Django 3.2 na Ubuntu 20.04 s Apache a WSGI. Pokud se vám tento článek líbí, mohly by se vám líbit i naše další články na tomto webu.


Ubuntu
  1. Jak nainstalovat software Ghost Blog pomocí Apache a SSL na Ubuntu 16.04

  2. Jak nainstalovat Apache Hive s Hadoop na CentOS, Ubuntu a LinuxMint

  3. Jak nainstalovat Apache Maven na Ubuntu 18.04 a 16.04

  1. Jak nainstalovat a nakonfigurovat Nextcloud s Apache na Ubuntu 18.04

  2. Jak nainstalovat a zabezpečit phpMyAdmin pomocí Apache na Ubuntu 18.04

  3. Jak nainstalovat a nakonfigurovat ownCloud s Apache na Ubuntu 18.04

  1. Jak nainstalovat WordPress s Apache na Ubuntu 18.04

  2. Jak nainstalovat Joomla s Apache na Ubuntu 18.04

  3. Jak nainstalovat Laravel na Ubuntu 18.04 s Apache