Apache Django Mod_Wsgi - auto reload

后端 未结 6 635
执念已碎
执念已碎 2020-12-29 15:54

I am trying to auto reload my django app which uses apache + mod_wsgi on my local windows machine.

I\'d like to know where do I add this code that\'s referenced in

6条回答
  •  暖寄归人
    2020-12-29 16:45

    I test this with Bitnami DjangoStack http://bitnami.org/stack/djangostack and Windows XP installed on D:\BitNami DjangoStack and C:\Documents and Settings\tsurahman\BitNami DjangoStack projects\myproject as project directory (default install)

    as in http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode#Restarting_Apache_Processes, I added

    MaxRequestsPerChild 1
    

    in file D:\BitNami DjangoStack\apps\django\conf\django.conf see comment by Graham Dumpleton

    then I created a file monitor.py in my project directory with content as in http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode#Monitoring_For_Code_Changes and replace the _restart method with http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode#Restarting_Windows_Apache, here is the part of the script

    ....
    
    _running = False
    _queue = Queue.Queue()
    _lock = threading.Lock()
    
    def _restart(path):
        _queue.put(True)
        prefix = 'monitor (pid=%d):' % os.getpid()
        print >> sys.stderr, '%s Change detected to \'%s\'.' % (prefix, path)
        print >> sys.stderr, '%s Triggering Apache restart.' % prefix
        import ctypes
        ctypes.windll.libhttpd.ap_signal_parent(1)
    
    def _modified(path):
        try:
    
    ....
    

    and in file D:\BitNami DjangoStack\apps\django\scripts\django.wsgi,

    ....
    
    import django.core.handlers.wsgi
    
    import monitor
    monitor.start(interval=1.0)
    monitor.track(os.path.join(os.path.dirname(__file__), 'site.cf'))
    
    application = django.core.handlers.wsgi.WSGIHandler()
    

    and then restart the Apache server

提交回复
热议问题