Instal·leu paquets
Configuració de bases de dades
Configura l'entorn virtual
Pujada i configuració del projecte
Configura Gunicorn
Nginx
Conclusió
Aquest tutorial explica com configurar Django a Debian 8 (jessie). Mostraré com utilitzar Python 2 i 3, així com Nginx i PostgreSQL.
Tot el que es fa en aquest tutorial es fa com a root.
Instal·leu paquets
Per començar, hem d'instal·lar alguns paquets.
Per a Python 2:
apt-get install python-pip python-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc
Per a Python 3:
apt-get install python3-pip python3-dev virtualenv nginx postgresql postgresql-contrib libpq-dev sudo gcc
Configuració de bases de dades
Primer, iniciem sessió a l'usuari postgres.
sudo -u postgres -s
A continuació, creem una nova base de dades. El nom de la base de dades pot ser el que vulgueu ( dbnameaquí s'utilitza), però heu de ser coherents amb la resta de la configuració.
createdb dbname
Creeu un usuari per a la nova base de dades. Un cop més, això pot ser el que vulguis que sigui, però he fet servir dbuser. Això també us demanarà que establiu una contrasenya.
createuser -P dbuser
Ara l'usuari ha de tenir accés a la base de dades. Només assegureu-vos d'utilitzar el nom de la base de dades i el nom d'usuari correctes.
psql
postgres=# GRANT ALL PRIVILEGES ON DATABASE dbname TO dbuser;
postgres=# \q
Sortir a root.
exit
Activeu i inicieu PostgreSQL:
systemctl enable postgresql
systemctl start postgresql
Configura l'entorn virtual
En lloc d'utilitzar només els fitxers Python globals, farem servir un entorn virtual. Comencem creant un directori per contenir-ho tot.
mkdir -p /opt/project
Ara creem l'entorn. Això és diferent per als usuaris de Python 2 i 3.
Per a Python 2:
virtualenv . -p python
Per a Python 3:
virtualenv . -p python3
Entra a l'entorn virtual.
source bin/activate
Instal·leu Django, gunicorn i psycopg2.
pip install django
pip install gunicorn
pip install psycopg2
Si necessiteu una versió específica de Django, canvieu l'ordre d'instal·lació perquè coincideixi amb el format següent. Aquest exemple instal·la 1.7.8.
pip install django==1.7.8
Ara hem acabat amb això de moment, així que podem desactivar el nostre entorn virtual.
deactivate
Pujada i configuració del projecte
És el moment en què pengem el nostre projecte al servidor i ens assegurem que tota la seva configuració sigui correcta. Podeu utilitzar qualsevol mètode per fer-ho. FTP, SFTP, git, etc. són maneres de fer-ho. Si utilitzeu git per fer un seguiment del codi del projecte, només podeu clonar-lo al servidor. Aquesta ordre git clonarà el projecte al servidor i el col·locarà a /opt/project/project/.
git clone http://example.com:project.git
Obriu el settings.pyfitxer en qualsevol navegador de text.
Primer de tot, el mode de depuració ha d'estar desactivat. Busqueu la DEBUG = Truelínia i canvieu Truea False. Després d'això, assegureu-vos que heu ALLOWED_HOSTSestablert algun valor.
ALLOWED_HOSTS = ['*']
Busqueu el DATABASESdiccionari i hauria de ser així:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'dbname',
'USER': 'dbuser',
'PASSWORD': 'password you set',
'HOST': 'localhost',
'PORT': ''
}
}
L'últim pas aquí és establir una arrel estàtica. Col·loqueu el següent directament a sota STATIC_URL.
STATIC_ROOT = '/opt/project/static/'
Sortiu del fitxer i creeu el directori arrel estàtic.
mkdir -p /opt/project/static
Ara migra la base de dades, creeu un superusuari i recull tots els fitxers estàtics.
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 és el servidor WSGI que farem servir. Com que Debian 8 ve amb systemd, aprofitarem systemd per iniciar i aturar el servidor.
Creeu el fitxer /etc/systemd/system/django.servicei afegiu el contingut següent.
[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
Habilita i inicia el servei que hem creat.
systemctl enable django.service
systemctl start django.service
Nginx
Potser us heu adonat que hem vinculat el servidor gunicorn a 127.0.0.1. Ara necessitem una manera d'accedir-hi des de fora del servidor. Aquí és on entra Nginx.
Creeu el fitxer nou /etc/nginx/sites-available/djangoi afegiu el següent. La domain.example.compeça es pot configurar com sigui que necessitis.
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;
}
}
Creeu un enllaç simbòlic per habilitar aquest lloc.
ln -s /etc/nginx/sites-available/django /etc/nginx/sites-enabled/django
Activeu i inicieu Nginx.
systemctl enable nginx
systemctl start nginx
Conclusió
Enhorabona, ara teniu un lloc de Django que funciona al vostre VPS de Debian.