2009-07-01 7 views
10

Mam instalację django na apache przy użyciu osadzonych wsgi. NIE mam root na maszynie.Przeładuj skrypty django wsgi bez korzenia

Jak mogę powiedzieć Apache, aby ponownie załadował instancję Pythona po wdrożeniu nowego kodu źródłowego?

Próbowałem usunąć wszystkie pliki .pyc i nadal działa stary kod.

Odpowiedz

5

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

Ten artykuł o przeładunku kod źródłowy z mod_wsgi przechodzi w jaki sposób, aby przeładować kod źródłowy, a nawet, jak utworzyć skrypt monitora automatycznie przeładować demona po wprowadzeniu zmian źródła. Jest to bardzo dobre do ustawienia środowiska programistycznego za pomocą mod_wsgi.

+1

Ten link wydaje się polecać 'MaxRequestsPerChild 1', który zabije moją wydajność. Szukałem sposobu na ponowne załadowanie go, gdybym zrobił push. –

+0

Nie musisz tego używać ... sprawdź kolejne trzy sekcje w artykule o trybie demona i monitorowaniu zmiany kodu. –

+0

Tryb demona jest odpowiedzią. Dwie linie w konfiguracji apache i nie kosztuje wydajności. dzięki –

14

Jeśli używasz mod_wsgi w trybie demona z apache, nie musisz ponownie uruchamiać Apache, aby załadować go ponownie.

Po prostu dotknę mojego pliku wsgi (unix: touch aktualizuje "zapisaną datę" pliku) i apache przeładowuje go przy następnym dostępie/trafieniu sieciowym.

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

... tak długo, jak można zmienić znacznik czasu nad scenariuszem WSGI.

+3

"touch filename.wsgi" to poprawny sposób na zrobienie tego i nie wymaga korzenia ani restartowania apache. Ponieważ generalnie chcę to zrobić natychmiast po sprawdzeniu nowego kodu, ustawiam alias, aby uzyskać najnowszy kod i dotknąć wsgi w tym samym czasie, np .: alias upcrest = 'cd/home/crest/sites/projects/ourcrestmont; svn up; touch /home/crest/our/ourcrestmont.wsgi ' – shacker

+0

Dokładnie! Dobry pomysł z alisem poleceń. – joej

+0

Kilka chwytów jest cichych, zobacz http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode#Reloading_In_Embedded_Mode – Wernight