Django

Django rakenduse loomine Ubuntu serveris

Django rakenduse loomine Ubuntu serveris
Django on ühine platvorm veebisaitide, veebirakenduste ja veebi API-de arendamiseks. Django raamistiku kasutamisel oma projekti jaoks tööriistana on palju eeliseid ja kui te pole kindel, kas see sobib, peate otsima ainult paljusid suuri nimekaid kaubamärke, kes kasutavad Django oma pinu.

Django esmakordne tootmiskeskkonda viimine võib olla heidutav ülesanne. Sageli käivitavad arendajad oma tootmiskeskkonna jaoks pilves Linuxi eksemplari.

Selles õpetuses näitame teile, kuidas käivitada Django tootmises, kasutades värsket Ubuntu eksemplari.

Eeldame, et kõik teie redigeerimised on tehtud serveris ja käske käivitate juurkäsuna.

Selle õpetuse jaoks kasutame Ubuntu 18.04.2 LTS

Projekti jaoks kasutaja loomine

Loome oma rakenduse käitamiseks uue kasutaja django. See annab väikese julgeolekueelise.

Uue kasutaja loomiseks tehke järgmist

useradd -m django

The -m lipp loob uue kodukataloogi: / home / django.

Pythoni keskkonna seadistamine

Esimesed asjad kõigepealt: värskendage oma pakettide loendeid apt-get värskendus

Ubuntu 18.04 laeva Python 3-ga.6, kuid seda ei tarnita pipiga, mille peate oma sõltuvused installima.

apt-get install python3-pip

Nüüd, kui meil on pip, loome virtuaalse keskkonna. Virtuaalsed keskkonnad aitavad vältida konflikte Linuxi kasutatavate Pythoni pakettidega.

pip3 installige virtualenv
cd / home / django
virtualenv env

Nüüd olete loonud virtuaalse Python 3.6 keskkond / home / django / etv kaust, mida saab aktiveerida järgmise käsuga: Nüüd, kui meil on pip, loome virtuaalse keskkonna. Virtuaalsed keskkonnad aitavad vältida konflikte Linuxi kasutatavate Pythoni pakettidega.

source / home / django / env / bin / activate

Django projekti püstitamine

Selle õpetuse jaoks loome ajutise Django projekti. Kui kasutate oma koodi, peate selle hoopis serverisse üles laadima. Tegutseme kodukataloogis / home / django.Django projekti püstitamine

Loome Django projekti:

cd / home / django
allikas env / bin / activate
pip install django
django-admin startprojecti õpetus

Kontrollige, kas asjad töötavad, käivitades:

cd õpetus
python hallata.py töötaberver 0.0.0.0:80

Meie Ubuntu eksemplar töötab 178-ga.128.229.34, seega loome ühenduse saidiga http: // 178.128.229.34.Kontrollige, kas asjad töötavad, käivitades:

Tõenäoliselt näete midagi sellist:

Selle parandamiseks muudame / home / django / tutorial / tutorial / settings.py. Leidke ALLOWED_HOSTS = [] ja määrake sellele:

ALLOWED_HOSTS = [
"178.128.229.34 '# asenda see oma serveri IP-aadressiga
või domeeni nimi, mida kasutate ühenduse loomiseks
]

Naaseme nüüd lehele http: // 178.128.229.34:

Suurepärane! Oleme võrgus!

PostgreSQL-i, andmebaasi seadistamine

Vaikimisi kasutab Django SQLite3 andmebaasi. Kahjuks ei luba SQLite3 samaaegseid kirjutusi. Kui teie veebisaidil on andmeid redigeerimas ainult üks kasutaja ja ülejäänud külastajad lihtsalt loevad lehti, siis võib see olla asjakohane. Kuid kui teil on korraga mitu inimest andmeid redigeerimas, soovite tõenäoliselt kasutada erinevat taustaprogrammi.

Levinud valikud on PostgreSQL ja Mysql. Selle õpetuse jaoks läheme koos PostgreSQL-iga.

Alustage PostgreSQL-i installimisega:

apt-get install postgresql

Seejärel käivitage andmebaasi kest psql. Vaikimisi saab andmebaasiga ühenduse luua ainult postgresi kasutaja, nii et kõigepealt peame selle kasutajana autentima:

su - postgres
psql

Järgmiseks vajame sellele andmebaasile juurdepääsu saamiseks andmebaasi ja kasutajat:

luua andmebaasi õpetus;
loo krüptitud parooliga kasutaja juhendaja_kasutaja 'juhendaja_parool';
andke kõik õigused andmebaasi õpetuses kasutajale tutorial_user;

Nüüd tippige exit või vajutage kaks korda klahvikombinatsiooni Ctrl-D: üks kord psql-st väljumiseks ja üks kord postgresuseri kestast välja logimiseks.

Suurepärane! Nüüd oleme oma andmebaasi ja kasutaja seadistanud. Kontrollime, kas saame oma andmebaasi sisse logida.

Püüame avada andmebaasi kesta, logides seekord sisse oma loodud kasutajaga andmebaasi:

psql -Uututorial_user -juhend -h127.0.0.1 -W

Sisestage viipale meie loodud parool: juhendaja_parool.

Kui näete andmebaasi kesta, olete olnud edukas. Kui näete vigu, peate tagasi minema ja välja selgitama, mis viga on.

Django ühendamine andmebaasiga

Django andmebaasiga ühendamiseks peame kõigepealt installima Pythoni PostgreSQL-i adapteri:

pip install psycopg2-binaarne

Siis avame end / home / django / tutorial / tutorial / settings.pyja konfigureerige ühendus.

Leidke oma praegune andmebaasiühendus; kui te seda ei muutnud, võib see välja näha umbes selline:

ANDMEBAASID =
'vaikimisi':
'MOOTOR': 'django.db.taustaprogrammid.sqlite3 ',
'NIMI': os.tee.liitu (BASE_DIR, 'db.sqlite3 '),

PostgreSQL-iga ühenduse loomiseks asendame selle järgmisega:

ANDMEBAASID =
'vaikimisi':
'MOOTOR': 'django.db.taustaprogrammid.postgresql_psycopg2 ',
'NAME': 'õpetus',
'USER': 'juhendaja_kasutaja',
'PASSWORD': 'juhendaja_parool',
'HOST': '127.0.0.1 ',
'PORT': '5432',

Testime ühendust:

cd / home / django / juhendaja
python hallata.py töötaberver 0.0.0.0:80

Teil peaks taas olema võimalus oma veebisaiti külastada (meie jaoks aadressil http: // 178.128.229.34 /, kuid asendage see oma IP või hostinimega).

Kui kõik on korras, saame jätkata.

Nginxi, veebiserveri seadistamine

Kui jooksed python hallata.py töötaberver, kasutate Django arendusserverit. See sobib suurepäraselt kohaliku arengu jaoks, kuid nagu ka SQLite3 puhul, ei sobi see tegelikult tootmiseks.

Tootmisveebiserverite levinumad valikud on nginx ja Apache. Selle õpetuse jaoks kasutame nginxi.

Installige nginx järgmiselt:

apt-get install nginx

Kui kõik on hästi toiminud, peaks nginx töötama pordis 80. Minge edasi ja vaadake oma veebisaiti; peaksite nägema:

Suurepärane, nii et nginx töötab ja töötab! Järgmisena peame selle konfigureerima Djangoga suhtlemiseks. Avage nginxi konfiguratsioonifail, mis asub aadressil / etc / nginx / sites-available / default. Asendame faili järgmisega:

ülesvoolu django
server 127.0.0.1: 8000;

server
kuulata 80;
asukoht /
try_files $ uri @send_to_django;

asukoht @send_to_django
proxy_set_header Host $ http_host;
puhverserver_siirata välja;
puhverserveri_pääs http: // django;

Testige konfiguratsioonifaili, käivitades nginx -t. Kui kõik on korras, saame uuesti laadida, käivitades nginx -s uuesti laadimise.

Nüüd, kui külastate oma saiti, näete järgmist:

Alati, kui seda näete, tähendab see, et nginx ei suutnud päringut edastada eelmises protsessis. Praegu on see sellepärast, et sellega üritatakse taotlust edastada 127-le.0.0.1: 8000, kuid sellel aadressil ei toimu protsessi kuulamist.

Käivitame Django arendusserveri ja proovime uuesti:

cd / home / django / juhendaja
python hallata.py jooksuserver 127.0.0.1: 8000

ja külastage uuesti oma veebisaiti. Peaksite nägema oma Django rakendust.

Django paigaldamine Gunicornile

Pidage meeles, et me ei soovi oma Django arendusserverit tootmises kasutada. Selle asemel kasutame Django käitamiseks veebiserveri lüüsiliidese (WSGI) serverit. Nginx edastab päringu WSGI-serverile, kus töötab Django.

WSGI-serveri levinumad valikud on Gunicorn ja uWSGI. Selle õpetuse jaoks kasutame Gunicorni.

Paigaldame Gunicorni:

pip paigaldage püss

Järgmisena võime alustada relvaga järgmiselt:

cd / home / django / juhendaja
püssisarviku õpetus.wsgi

Nüüd peaksite saama külastada oma veebisaiti ja näha, kuidas teie rakendus töötab korralikult.

Gunicorni käitamine teenusena

Sellise püssisarve käitamisel on mõned probleemid:

  1. Kui SSH seansi sulgeme, peatub püssirohuprotsess.
  2. Kui server taaskäivitub, ei alustata püssirohuprotsessi.
  3. Protsess töötab root. Kui häkkerid leiavad meie rakenduse koodist ärakasutamise, saavad nad käske käivitada juurkasutajana. Me ei taha seda; aga sellepärast lõime djangouseri!

Nende probleemide lahendamiseks käivitame Gunicorni süsteemiteenusena.

cd / home / django
mkdir bin
cd / home / django / bin
puudutage start-serverit.sh

Start-serveris.sh:

cd / home / django
allikas env / bin / activate
cd õpetus
püssisarve õpetus.wsgi

Nüüd saate skripti testida:

cd / home / django / bin
bash algusserver.sh
# külastage oma veebisaiti, see peaks töötama

Nüüd loome Gunicornile teenuse systemd. Looge / etc / systemd / system / gunicorn.teenused järgnevad:

[Üksus]
Kirjeldus = Gunicorn
Pärast = võrk.sihtmärk
[Teenus]
Tüüp = lihtne
Kasutaja = django
ExecStart = / home / django / bin / start-server.sh
Taaskäivitamine = ebaõnnestunud
[Install]
WantedBy = mitme kasutajaga.sihtmärk

Nüüd lubame teenuse ja käivitame selle

systemctl lubage püssirukk
systemctl start relv

Praegu peaksite nägema oma veebisaiti.

Saame püssirohu välja lülitada järgmiselt:

systemctl peatus relv

Ja peaksite nägema 502 Bad Gateway.

Lõpuks kontrollime alglaadimistsüklit:

systemctl start relv
Taaskäivita nüüd

Kui teie masin võrku jõuab, peaksite nägema, et teie veebisait on üleval.

Staatilised failid

Kui külastate oma veebisaidil Django administraatori paneeli aadressil / admin / (meie jaoks on see http: // 178.128.229.34 / admin /) märkate, et staatilisi faile ei laadita õigesti.

Peame staatiliste failide jaoks looma uue kausta:

cd / home / django
mkdir staatiline

Seejärel ütleme Djangole, kuhu ta peaks staatilised failid panema redigeerides / home / django / tutorial / tutorial / settings.py ja lisades:

STATIC_ROOT = '/ kodu / django / staatiline /'

Nüüd saame staatilised failid kokku koguda:

cd / home / django
allikas env / bin / activate
cd õpetus
python hallata.py kollektiivne

Lõpuks peame käskima nginxil neid staatilisi faile teenindada.

Avame faili / etc / nginx / sites-available / default ja lisame järgmise otse oma asukoha / ploki kohale:

asukoht / staatiline /
juur / kodu / django;
proovifailid $ uri = 404;

Kogu fail peaks nüüd välja nägema selline:

ülesvoolu django
server 127.0.0.1: 8000;

server
kuulata 80;
asukoht / staatiline /
juur / kodu / django;
proovifailid $ uri = 404;

asukoht /
try_files $ uri @send_to_django;

asukoht @send_to_django
proxy_set_header Host $ http_host;
puhverserver_siirata välja;
puhverserveri_pääs http: // django;

Saame faili uuesti laadida, kasutades nginx -s uuesti laadimist

Ja voila! Teie staatilised failid töötavad nüüd täielikult.

Järeldus

Sel hetkel töötab teie Django rakendus korralikult. Kui teil on mingeid erinõudeid, peate võib-olla seadistama vahemälu nagu Redis või sõnumijärjekorra nagu Rabbit MQ. Samuti võiksite seadistada pideva juurutamise, kuna juurutamisprotseduur võib võtta aega.

Teine oluline samm on teha sobivad sammud oma Ubuntu masina turvamiseks. Vastasel juhul võib teie server käituda valesti!

Edu!

10 parimat mängu, mida Ubuntu kaudu mängida
Windowsi platvorm on olnud üks mängude domineerivaid platvorme, kuna tohutu protsent mänge areneb täna Windowsi loomupäraseks toetamiseks. Kas keegi s...
5 parimat arkaadmängu Linuxile
Tänapäeval on arvutid tõsised mängimiseks kasutatavad masinad. Kui te ei saa uut rekordit, teate, mida ma mõtlen. Selles postituses saate teada mõnda ...
Lahing Wesnothi eest 1.13.6 Areng vabastati
Lahing Wesnothi eest 1.13.6 ilmus eelmisel kuul, on 1-s kuues arendusversioon.13.x-seeria ja see pakub mitmeid täiustusi, eelkõige kasutajaliidese ja ...