Postavite Django na Debian 8

Ovaj vodič objašnjava kako postaviti Django na Debian 8 (jessie). Pokazat ću kako koristiti i Python 2 i 3, kao i Nginx i PostgreSQL.

Sve što se radi u ovom vodiču radi se kao root.

Instalirajte pakete

Za početak, moramo instalirati neke pakete.

Za Python 2:

apt-get install python-pip python-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc

Za Python 3:

apt-get install python3-pip python3-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc

Postavljanje baza podataka

Prvo se prijavljujemo na korisnika postgres.

sudo -u postgres -s

Zatim stvaramo novu bazu podataka. Naziv baze podataka može biti kakav god želite ( dbnameovdje se koristi), ali morate biti dosljedni ostatku podešavanja.

createdb dbname

Stvorite korisnika za novu bazu podataka. Opet, ovo može biti što god želite, ali ja sam koristio dbuser. Ovo će također tražiti da postavite lozinku.

createuser -P dbuser

Korisniku se sada mora dati pristup bazi podataka. Samo pazite da koristite ispravan naziv baze podataka i korisničko ime.

psql
postgres=# GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;
postgres=# \q

Izađite na root.

exit

Omogućite i pokrenite PostgreSQL:

systemctl enable postgresql
systemctl start postgresql

Postavite virtualno okruženje

Umjesto da samo koristimo globalne python datoteke, koristit ćemo virtualno okruženje. Počinjemo stvaranjem imenika koji će sve to držati.

mkdir -p /opt/project

Sada stvaramo okruženje. Ovo je drugačije za korisnike python 2 i 3.

Za Python 2:

virtualenv . -p python

Za Python 3:

virtualenv . -p python3

Uđite u virtualno okruženje.

source bin/activate

Instalirajte Django, gunicorn i psycopg2.

pip install django
pip install gunicorn
pip install psycopg2

Ako trebate određenu verziju Djanga, promijenite naredbu za instalaciju tako da odgovara formatu u nastavku. Ovaj primjer instalira 1.7.8.

pip install django==1.7.8

Za sada smo završili s tim, tako da možemo deaktivirati naše virtualno okruženje.

deactivate

Prijenos i konfiguracija projekta

Ovo je vrijeme kada prenosimo naš projekt na poslužitelj i osiguravamo da su sve njegove postavke ispravne. Za to možete koristiti bilo koju metodu. FTP, SFTP, git, itd. su svi načini za to. Ako koristite git za praćenje koda projekta, možete ga jednostavno klonirati na poslužitelj. Ova naredba git će klonirati projekt na poslužitelj i smjestiti ga u /opt/project/project/.

git clone http://example.com:project.git

Otvorite settings.pydatoteku u bilo kojem tekstualnom pregledniku.

Prvo, način za otklanjanje pogrešaka mora biti isključen. Potražite DEBUG = Trueliniju i promijenite Trueu False. Nakon toga provjerite jeste li ALLOWED_HOSTSpostavili neku vrijednost.

ALLOWED_HOSTS = ['*']

Potražite DATABASESrječnik i trebao bi izgledati ovako:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'dbname',
        'USER': 'dbuser',
        'PASSWORD': 'password you set',
        'HOST': 'localhost',
        'PORT': ''
    }
}

Zadnji korak ovdje je postavljanje statičkog korijena. Postavite sljedeće izravno ispod STATIC_URL.

STATIC_ROOT = '/opt/project/static/'

Izađite iz datoteke i stvorite statički korijenski direktorij.

mkdir -p /opt/project/static

Sada migrirajte bazu podataka, stvorite super korisnika i prikupite sve statičke datoteke.

cd /opt/project/project
../bin/python manage.py makemigrations
../bin/python manage.py migrate
../bin/python manage.py createsuperuser
../bin/python manage.py collectstatic

Konfigurirajte Gunicorn

Gunicorn je WSGI poslužitelj koji ćemo koristiti. Budući da Debian 8 dolazi sa systemd-om, iskoristit ćemo prednosti systemd-a za pokretanje i zaustavljanje poslužitelja.

Stvorite datoteku /etc/systemd/system/django.servicei dodajte sljedeći sadržaj.

[Unit]
Description=Django with Gunicorn
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/opt/project
ExecStart=/opt/project/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 project.wsgi

[Install]
WantedBy=multi-user.target

Omogućite i pokrenite uslugu koju smo kreirali.

systemctl enable django.service
systemctl start django.service

Nginx

Možda ste primijetili da smo poslužitelj gunicorn vezali za 127.0.0.1. Sada nam je potreban način da mu pristupimo izvan poslužitelja. Ovdje dolazi Nginx.

Napravite novu datoteku /etc/nginx/sites-available/djangoi dodajte sljedeće. domain.example.comDio može se postaviti na sve što je potrebno da bude.

server {
        listen 80;
        server_name domain.example.com;
        access_log off;

        location /static/ {
                alias /opt/project/static/;
        }

        location / {
                proxy_pass http://127.0.0.1:8000;
        }
}

Napravite simboličku vezu kako biste omogućili ovu stranicu.

ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled/django

Omogućite i pokrenite Nginx.

systemctl enable nginx
systemctl start nginx

Zaključak

Čestitamo, sada imate radnu Django stranicu na svom Debian VPS-u.

Ostavite komentar

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više