2009-07-01 8 views
10

J'ai une installation de django sur apache en utilisant wsgi intégré. Je n'ai pas de racine sur la machine.Recharger les scripts django wsgi sans racine

Comment puis-je demander à apache de recharger l'instance python lorsque je déploie un nouveau code source?

J'ai essayé de supprimer tous les fichiers .pyc et il exécute toujours l'ancien code.

Répondre

5

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

Cet article sur rechargeant code source avec mod_wsgi va dans la façon de recharger le code source, et même comment créer un script de contrôle pour recharger automatiquement le démon lorsque vous modifiez la source. C'est vraiment bon pour configurer un environnement de développement en utilisant mod_wsgi.

+1

Ce lien semble recommander 'MaxRequestsPerChild 1' qui va tuer mes performances. Je cherchais un moyen de le recharger chaque fois que je fais une poussée. –

+0

Vous n'avez pas besoin de l'utiliser ... consultez les trois sections suivantes dans l'article sur le mode daemon et la surveillance du changement de code. –

+0

Le mode démon est la réponse. Deux lignes dans la configuration d'apache, et cela ne coûte pas la performance. merci –

14

Si vous exécutez mod_wsgi en mode démon avec apache, vous n'aurez peut-être pas besoin de redémarrer apache pour le recharger. Je viens de toucher mon fichier wsgi (unix: touch met à jour la 'date enregistrée' d'un fichier) et apache le recharge lors du prochain accès/web-hit.

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

... aussi longtemps que vous pouvez modifier l'horodatage sur le script WSGI.

+3

"touch filename.wsgi" est la bonne façon de le faire, et ne nécessite pas de root ou de redémarrer Apache. Comme je ne veux généralement que le faire immédiatement après avoir vérifié le nouveau code, j'ai mis en place un alias pour obtenir le dernier code et toucher le wsgi en même temps, par exemple: alias upcrest = 'cd/home/crest/sites/projets/ourcrestmont; svn up; touchez /home/crest/our/ourcrestmont.wsgi ' – shacker

+0

Exactement! Bonne idée avec l'alias de commande. – joej

+0

Il y a quelques captures, voir http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode#Reloading_In_Embedded_Mode – Wernight

Questions connexes