2010-04-21 6 views
1

Je suis en cours d'exécution d'un projet Django sur serveur Web de mon école avec FCGI. J'ai suivi les multiples guides qui recommandent d'installer un environnement Python local virtuel et cela a bien fonctionné. La seule question que j'avais était que « toucher » mon fcgi-file pour recharger les fichiers-sources ne suffisait pas, mais j'ai dû tuer le service python via SSH. Ceci parce que mod_fcgid est utilisé.mod_fcgid sans tuer service Python

Cependant, l'administration ne pense pas que ce soit une bonne idée que je courais mon python local. Il pensait que c'était mieux si je lui disais quels modules installer sur root, ce qui était vraiment un très bon service.

Mais, ce faisant, je ne peux plus tuer python car il est sous la racine (si immoral que je suis, j'ai vraiment essayé). La recommandation des administrateurs était que je devrais essayer de faire en sorte que le script fcgi se recharge en vérifiant l'horodatage. J'ai essayé de trouver de la documentation sur la façon de faire, mais très peu de financement et depuis que je suis un débutant absolu je ne sais pas ce qui fonctionnerait. Quelqu'un a-t-il l'expérience de l'exécution de python/django sous mod_fcgid ou de conseils pour trouver des guides/documents connexes?

Répondre

0

voici ce que je ferais:

## top of my .fcgi script 
import sys, time 
original_modules = sys.modules.copy() 

## in a separate thread 
old_ctime = os.path.getctime("mymodule.py") 
while True: 
    time.sleep(10) 
    new_ctime = os.path.getctime("mymodule.py") 
    if new_ctime > old_ctime: 
     sys.modules = original_modules # reset all imports 
     import mymodule 
     mymodule.dofcgi() 

accordé c'est tomber en parfait (vous pourriez avoir à gâcher w/filetage) pas, mais il devrait vous donner une idée générale de la façon de « recharger "un module complètement.

+0

Merci! Cela semble similaire à la pseudo-idée que j'avais dans ma tête mais je n'avais aucune idée de comment l'implémenter. – Tobias