2009-07-01 18 views
10

Tengo una instalación de django en apache usando wsgi incorporado. NO tengo raíz en la máquina.Recargar scripts django wsgi sin root

¿Cómo puedo decirle a apache que vuelva a cargar la instancia de python cuando implemente un nuevo código fuente?

Intenté eliminar todos los archivos .pyc y todavía está ejecutando el código anterior.

Respuesta

5

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

Este artículo sobre la recarga de código fuente con mod_wsgi entra en cómo recargar código fuente, e incluso cómo crear una secuencia de comandos de monitor para recargar automáticamente el demonio cuando se realizan cambios de código. Es realmente bueno para configurar un entorno de desarrollo usando mod_wsgi.

+1

Ese enlace parece recomendar 'MaxRequestsPerChild 1' que matará mi rendimiento. Estaba buscando una forma de volver a cargarlo cada vez que hago un push. –

+0

No tiene que usar eso ... eche un vistazo a las siguientes tres secciones en el artículo sobre el modo daemon y la supervisión del cambio de código. –

+0

El modo Daemon es la respuesta. Dos líneas en la configuración de apache, y no cuesta el rendimiento. gracias –

14

Si está ejecutando mod_wsgi en modo daemon con apache, es posible que no tenga que reiniciar apache para que vuelva a cargarse.

Acabo de tocar mi archivo wsgi (Unix: toque actualiza la 'fecha de guardado' de un archivo) y apache lo vuelve a cargar en el siguiente acceso/acceso web.

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

... siempre y cuando se puede modificar la marca de tiempo en el guión WSGI.

+3

"touch filename.wsgi" es la forma correcta de hacerlo, y no requiere root ni reiniciar apache. Como generalmente solo quiero hacer esto inmediatamente después de verificar el nuevo código, configuro un alias para obtener el código más reciente y toco el wsgi al mismo tiempo, por ejemplo: alias upcrest = 'cd/home/crest/sites/projects/ourcrestmont; svn up; toca /home/crest/our/ourcrestmont.wsgi ' – shacker

+0

¡Exactamente! Buena idea con el alias de comando. – joej

+0

Hay algunas capturas tranquilas, ver http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode#Reloading_In_Embedded_Mode – Wernight

Cuestiones relacionadas