nemesifier
nemesifier

Reputation: 8509

Django + apache & mod_wsgi: having to restart apache after changes

I configured my development server this way:

Ubuntu, Apache, mod_wsgi, Python 2.6

I work on the server from another computer connected to it.

Most of the times the changes don't affect the application unless I restart Apache. In some cases the changes take effect without restarting the webserver, but after let's say 3 or 4 page loads the application might behave like it used to behave previous to the changes.

Until now I just reloaded everytime apache as I have the development server here with me, but HELL after a while got so annoying. How can I avoid this?

I can't work with the development server as I need an environment that is as close as possible as the production one.

Thanks

Upvotes: 35

Views: 27106

Answers (3)

RoosterJuice
RoosterJuice

Reputation: 95

No changes require you to RESTART. You simply need to reload using "sudo /etc/init.d/apache2 reload". Which I have aliased in my bashrc to 'a2reload'.

function a2reload (){
sudo /etc/init.d/apache2 reload
}

Upvotes: 7

Don
Don

Reputation: 17606

Apache loads Django environment when starting and keep running it even when source is changed.

I suggest you to use Django 'runserver' (which automatically restarts on changes) in heavy development sessions, unless you need some Apache-specific features (such as multi-thread).

Note also that changes in templates do not require the restart of the web server.

Upvotes: 0

vonPetrushev
vonPetrushev

Reputation: 5599

My suggestion is that you run the application in daemon mode. This way you won't be required to restart apache, just touch my_handler.wsgi and the daemon will know to restart the app. The apache httpd will not be only yours (in production) so it is fair not to restart it on every update.

Upvotes: 25

Related Questions