[Python] Io lo so che coem sistemista faccio schifo
Roberto De Ioris
roberto a unbit.it
Sab 21 Mar 2015 13:46:07 CET
> Allora ho seguito le istruzioni ma uwsgi non ne vuole sapere di partire.
> Il
> log file e' desolantemente vuoto, ho provato anche con /etc/init.d/uwsgi
> restart. Continuo a pensare che sia meglio il mestiere del piadinaro
> ambulante, alla fine.
>
> Carlos
>
Il fatto che parli di /etc/init.d/uwsgi mi lascia molto molto perplesso
(upstart e' il tuo unico obiettivo visto che sei su ubuntu.)
Hai seguito il quickstart che ti ho linkato da cima a fondo ? Ti e' tutto
chiaro ?
Ricapitolando:
- accertati di aver costruito un file di config decente, per cui se lanci
(da utente non privilegiato)
uwsgi nomefile.ini
hai l'output su terminale e ti puoi collegare con il browser alla porta
specificata con successo.
Un file di esempio (cambia <django_project> e <percorso_di_wsgi.py> con la
dir/file del progetto):
[uwsgi]
; avvia il server http sulla porta 8080
http = :8080
; cambia la directory nel progetto di django
chdir = <django_project>
; abilita il master
master = true
; metti 4 processi per avere un po' di concorrenza
processes = 4
; carica django
wsgi-file = <percorso_di_wsgi.py>
Quando funziona, ti fermi un attimo perche' dovrai prendere delle decisioni:
- con che utente e gruppo lo faccio girare (accertati che l'utente possa
leggere i file del progetto) ?
- dove voglio loggare (file, syslog, socket ...) (accertati che l'utente
possa creare/leggere/scrivere il file di log, in caso sia un file)?
ipotizziamo che l'utente sia pippo e il gruppo pluto e che vuoi loggare in
/var/log/uwsgi.log (ipotizzando che il tuo utente possa creare file dentro
/var/log, altrimenti usa /tmp o la dir del progetto). Aggiungi al file
.ini:
uid = pippo
gid = pluto
logto = /var/log/uwsgi.log
E rilancia (sempre da terminale):
uwsgi nomefile.ini
se tutto va bene vedrai solo un annuncio che il file .ini e' stato letto e
poi il terminale restera' appeso.
Apri il file di log e controlla che ci sia tutto.
Se c'e' tutto resta solo di sistemare upstart.
Crea /etc/init/uwsgi.conf
# simple uWSGI script
description "uwsgi tiny instance"
start on runlevel [2345]
stop on runlevel [06]
exec uwsgi --die-on-term percorso_assoluto_al_file.ini
(--die-on-term ti serve fino a 2.0, se stai usando uWSGI 2.1 il problema
dell'uso idiota di SIGTERM e' stato risolto)
Questo e' un setup "minimale", tutto il resto viene dopo.
--
Roberto De Ioris
http://unbit.com
Maggiori informazioni sulla lista
Python