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
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.
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
}
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.