2009-07-01 25 views
10

Ho una installazione di Django su Apache usando WSGI incorporato. NON ho root sulla macchina.Aggiornare Django WSGI script senza radice

Come posso dire ad Apache di ricaricare l'istanza pitone quando schiero nuovo codice sorgente?

Ho provato a rimuovere tutti i file .pyc e lo è ancora in esecuzione il vecchio codice.

risposta

5

http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

Questo articolo circa ricaricare codice sorgente con mod_wsgi va in come ricaricare il codice sorgente, e anche come creare uno script monitor per ricaricare automaticamente il demone quando si apportano modifiche di origine. È davvero ottimo per configurare un ambiente di sviluppo usando mod_wsgi.

+1

Tale nesso sembra raccomandare 'MaxRequestsPerChild 1' che ucciderà la mia prestazione. Stavo cercando un modo per ricaricarlo ogni volta che faccio una spinta. –

+0

Non devi usarlo ... dai un'occhiata alle prossime tre sezioni nell'articolo sulla modalità daemon e sul monitoraggio delle modifiche al codice. –

+0

La modalità daemon è la risposta. Due righe nella configurazione di apache e non costa la prestazione. grazie –

14

Se si esegue mod_wsgi in modalità demone con Apache, non potrebbe essere necessario riavviare apache per farlo ricaricare.

Ho appena toccare il mio file WSGI (unix: touch aggiorna la 'data salvata' di un file) e le ricariche apache IT su successivo accesso/web-hit.

Vedi http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

... fino a quando è possibile modificare il timestamp sullo script WSGI.

+3

"touch filename.wsgi" è il modo corretto per farlo e non richiede root o riavvio di apache. Dal momento che in genere desidero farlo immediatamente dopo aver controllato il nuovo codice, ho impostato un alias per ottenere l'ultimo codice e toccare il file wsgi contemporaneamente, ad esempio: alias upcrest = 'cd/home/crest/sites/projects/ourcrestmont; svn up; tocca /home/crest/our/ourcrestmont.wsgi ' – shacker

+0

Esattamente! Buona idea con il comando alias. – joej

+0

Ci sono pochi problemi, vedi http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode#Reloading_In_Embedded_Mode – Wernight

Problemi correlati