Diferència entre revisions de la pàgina «Django en producció»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
Línia 25: Línia 25:
 
* El port d'accés és el 8080
 
* El port d'accés és el 8080
 
* El "&" final permet que el procés sigui independent de la nostra ''shell'', i ara la podrem tancar sense problema.
 
* El "&" final permet que el procés sigui independent de la nostra ''shell'', i ara la podrem tancar sense problema.
 +
 +
=== Matar el procés ===
 +
Com que hem independitzat el procés de la ''shell'', per parar-lo no ens serveix un CTRL-C de costum.
 +
 +
Per parar aquest procés caldrà localitzar el PID i fer-li un KILL, o sigui:
 +
$ ps aux | grep python
 +
...localitzem el seu PID, posem que fos el 10194 i el matem:
 +
$ kill 10194
  
 
<br>
 
<br>

Revisió del 19:01, 19 des 2016

En aquest article veurem diverses maneres de posar en producció en un servidor el framework web Django.

Abans que res cal que compteu amb un projecte propi en Django, a l'estil d'aquest, que és el mateix que hi ha al tutorial oficial de Django:

https://github.com/emieza/provadjango

Si voleu utilitzar aquest projecte de prova meu, tingueu en compte que està fet amb Django 1.7, i que per tant cal instal·lar aquesta versió concreta en el vostre Virtualenv amb

(env) $ pip install django==1.7


Django en producció amb el servidor de desenvolupament

Aquesta versió és una xapussa per fer proves però que en ocasions és útil per depurar algun possible problema del servidor. Per tant, aquest NO és un mètode recomanable per producció, simplement és per fer proves i una primer aproximació al tema.

  1. Obriu el port 8080 del vostre servidor, si és que te un firewall (com és el cas del AWS).
  2. Instal·leu Virtualenv en el servidor.
  3. Creeu un virtualenv per al projecte i feu-hi un source com indica l'article Virtualenv
  4. Instal·leu Django (si és el projecte que hi ha en aquest article instal·leu la versió 1.7 com s'indica)
  5. Descarregueu el projecte de Django del repositori de GITHUB pertinent, hauria de ser similar a:
    (env) $ git clone https://github.com/emieza/provadjango.git
  6. Instal·leu la base de dades amb un makemigrations i un migrate
  7. Correu el servidor amb la comanda:
    (env) $ python manage.py runserver 0.0.0.0:8080 &

Pareu atenció a les novetats d'aquesta darrera comanda:

  • Mitjançant 0.0.0.0 permetrem que qualsevol màquina pugui accedir al servidor (abans amb 127.0.0.1 només es podia accedir des de localhost).
  • El port d'accés és el 8080
  • El "&" final permet que el procés sigui independent de la nostra shell, i ara la podrem tancar sense problema.

Matar el procés

Com que hem independitzat el procés de la shell, per parar-lo no ens serveix un CTRL-C de costum.

Per parar aquest procés caldrà localitzar el PID i fer-li un KILL, o sigui:

$ ps aux | grep python

...localitzem el seu PID, posem que fos el 10194 i el matem:

$ kill 10194


Django en producció amb Apache i WSGI

...


Django en producció amb Openshift

...


Django en producció amb Gunicorn

...