Django + apache & mod wsgi: redémarrer apache après modifications

j'ai configuré mon serveur de développement de cette façon:

Ubuntu, Apache, mod_wsgi, la version 2.6 de Python

je travaille sur le serveur depuis un autre ordinateur qui y est connecté.

la plupart du temps, les modifications n'affectent pas L'application à moins que je ne redémarre Apache. Dans certains cas, les modifications prennent effet sans redémarrer le serveur web, mais après un chargement de 3 ou 4 pages, l'application peut se comporter comme avant les modifications.

Jusqu'à ce que maintenant, je viens de recharger apache chaque fois que j'ai le serveur de développement ici avec moi, mais L'enfer après un certain temps est devenu si ennuyeux. Comment puis-je éviter cela?

Je ne peux pas travailler avec le serveur de développement car j'ai besoin d'un environnement aussi proche que possible de celui de la production.

Merci

24
demandé sur nemesisdesign 2010-11-17 18:30:08

3 réponses

ma suggestion est que vous exécutiez l'application en mode démon. De cette façon, vous n'aurez pas à redémarrer apache, touch my_handler.wsgi et le démon saura redémarrer l'application. Apache httpd ne sera pas seulement le vôtre (en production), il est donc juste de ne pas le redémarrer à chaque mise à jour.

14
répondu vonPetrushev 2010-11-17 15:42:55

aucun changement ne vous oblige à redémarrer. vous avez simplement besoin de recharger en utilisant "sudo /etc/init.d / apache2 reload". Que j'ai aliasé dans mon bashrc à "a2reload".

function a2reload (){
sudo /etc/init.d/apache2 reload
}
6
répondu RoosterJuice 2010-11-17 16:32:48

Apache charge L'environnement Django au démarrage et continue de l'exécuter même lorsque la source est changée.

je vous suggère D'utiliser Django 'runserver' (qui redémarre automatiquement sur les modifications) dans les sessions de développement lourdes, à moins que vous n'ayez besoin de certaines fonctionnalités spécifiques à Apache (telles que le multi-thread).

Notez aussi que les changements dans les modèles ne nécessitent pas le redémarrage du serveur web.

-1
répondu Don 2010-11-17 15:44:14