Instalirajte pakete
Postavljanje baza podataka
Postavite virtualno okruženje
Prijenos i konfiguracija projekta
Konfigurirajte Gunicorn
Nginx
Zaključak
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
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.