Инсталирајте пакете
Подешавање база података
Подесите виртуелно окружење
Отпремање и конфигурација пројекта
Конфигуришите Гуницорн
Нгинк
Закључак
Овај водич објашњава како да подесите Дјанго на Дебиан 8 (јессие). Показаћу како се користе и Питхон 2 и 3, као и Нгинк и ПостгреСКЛ.
Све што је урађено у овом водичу се ради као роот.
Инсталирајте пакете
За почетак, морамо да инсталирамо неке пакете.
За Питхон 2:
apt-get install python-pip python-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc
За Питхон 3:
apt-get install python3-pip python3-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc
Подешавање база података
Прво се пријављујемо на корисника postgres.
sudo -u postgres -s
Затим креирамо нову базу података. Име базе података може бити шта год желите ( dbnameовде се користи), али морате бити у складу са остатком подешавања.
createdb dbname
Креирајте корисника за нову базу података. Опет, ово може бити шта год желите, али ја сам користио dbuser. Ово ће такође тражити да поставите лозинку.
createuser -P dbuser
Кориснику се сада мора дати приступ бази података. Само будите сигурни да користите исправно име базе података и корисничко име.
psql
postgres=# GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;
postgres=# \q
Изађите на роот.
exit
Омогућите и покрените ПостгреСКЛ:
systemctl enable postgresql
systemctl start postgresql
Подесите виртуелно окружење
Уместо да само користимо глобалне питхон датотеке, користићемо виртуелно окружење. Почињемо креирањем директоријума који ће све то држати.
mkdir -p /opt/project
Сада стварамо окружење. Ово је другачије за кориснике Питхон 2 и 3.
За Питхон 2:
virtualenv . -p python
За Питхон 3:
virtualenv . -p python3
Уђите у виртуелно окружење.
source bin/activate
Инсталирајте Дјанго, гуницорн и псицопг2.
pip install django
pip install gunicorn
pip install psycopg2
Ако вам је потребна одређена верзија Дјанга, промените команду за инсталацију тако да одговара формату испод. Овај пример инсталира 1.7.8.
pip install django==1.7.8
За сада смо завршили са тим, тако да можемо да деактивирамо наше виртуелно окружење.
deactivate
Отпремање и конфигурација пројекта
Ово је време када отпремамо наш пројекат на сервер и уверавамо се да су сва његова подешавања тачна. За то можете користити било који метод. ФТП, СФТП, гит, итд. су сви начини за то. Ако користите гит за праћење кода пројекта, можете га једноставно клонирати на сервер. Ова гит команда ће клонирати пројекат на сервер и поставити га у /opt/project/project/.
git clone http://example.com:project.git
Отворите settings.pyдатотеку у било ком текстуалном претраживачу.
Прво, режим за отклањање грешака мора бити искључен. Потражите DEBUG = Trueлинију и промените Trueу False. Након овога, уверите се да сте ALLOWED_HOSTSподесили неку вредност.
ALLOWED_HOSTS = ['*']
Потражите DATABASESречник и требало би да изгледа овако:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'dbname',
'USER': 'dbuser',
'PASSWORD': 'password you set',
'HOST': 'localhost',
'PORT': ''
}
}
Последњи корак овде је постављање статичког корена. Поставите следеће директно испод STATIC_URL.
STATIC_ROOT = '/opt/project/static/'
Изађите из датотеке и креирајте статички основни директоријум.
mkdir -p /opt/project/static
Сада мигрирајте базу података, креирајте супер корисника и сакупите све статичке датотеке.
cd /opt/project/project
../bin/python manage.py makemigrations
../bin/python manage.py migrate
../bin/python manage.py createsuperuser
../bin/python manage.py collectstatic
Гуницорн је ВСГИ сервер који ћемо користити. Пошто Дебиан 8 долази са системд-ом, искористићемо предности системд-а да покренемо и зауставимо сервер.
Креирајте датотеку /etc/systemd/system/django.serviceи додајте следећи садржај.
[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
Омогућите и покрените услугу коју смо креирали.
systemctl enable django.service
systemctl start django.service
Нгинк
Можда сте приметили да смо сервер гуницорн везали за 127.0.0.1. Сада нам је потребан начин да му приступимо изван сервера. Овде долази Нгинк.
Креирајте нову датотеку /etc/nginx/sites-available/djangoи додајте следеће. domain.example.comДео може да се подеси да све што је потребно да буде.
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;
}
}
Направите симболичну везу да бисте омогућили ову локацију.
ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled/django
Омогућите и покрените Нгинк.
systemctl enable nginx
systemctl start nginx
Закључак
Честитамо, сада имате радну Дјанго локацију на вашем Дебиан ВПС-у.