Django + apache & mod_wsgi: необходимо перезапустить apache после изменений
Я сконфигурировал свой сервер разработки следующим образом:
Ubuntu, Apache, mod_wsgi, Python 2.6
Я работаю на сервере с другого подключенного к нему компьютера.
В большинстве случаев изменения не влияют на приложение, если я не перезапущу Apache.
В некоторых случаях изменения вступают в силу без перезапуска веб-сервера, но после того, как скажут, что 3 или 4 страницы загружаются, приложение может вести себя так, как будто оно ведет себя раньше изменений.
До сих пор я просто перезагружался каждый раз, когда apache, поскольку у меня есть сервер разработки здесь со мной, но HELL через некоторое время так раздражает. Как я могу избежать этого?
Я не могу работать с сервером разработки, так как мне нужна среда, максимально приближенная к исходной.
Спасибо
Ответы
Ответ 1
Мое предложение состоит в том, что вы запускаете приложение в режиме демона.
Таким образом, вам не потребуется перезапускать apache,
просто touch my_handler.wsgi
, и демон будет знать, чтобы перезапустить приложение. Apache httpd не будет только вашим (в производстве), поэтому справедливо не перезапускать его при каждом обновлении.
Ответ 2
Никаких изменений не требуется для RESTART. Вам просто нужно перезагрузить, используя "sudo/etc/init.d/apache2 reload". Который у меня есть aliased в моем bashrc к 'a2reload'.
function a2reload (){
sudo /etc/init.d/apache2 reload
}
Ответ 3
Apache загружает среду Django при запуске и продолжает работать даже при изменении источника.
Я предлагаю вам использовать Django 'runningerver' (который автоматически перезапускается при изменениях) в тяжелых сессиях разработки, если вам не нужны некоторые специфичные для Apache функции (например, многопоточные).
Обратите внимание, что изменения в шаблонах не требуют перезапуска веб-сервера.