Posts Tagged mod_wsgi
Running our Django site with mod_wsgi and virtualenv (part 2)
Posted by Carles Barrobés in deployment, development on 2011/08/10
These are the steps remaining from our previous article. In order to complete our desired setup we must configure Apache with mod_wsgi pointing to the new virtual environment.
But before we can even do that, we need to setup mod_wsgi, which in our case will require building it and installing it from source.
Setting up mod_wsgi with our virtual Environment
Detailed explanations for using virtual environments in mod_wsgi can be found here.
Just by reading over a bit, and based on some prior experience (2+ years ago, though), I was expecting this to be the main pain area of the whole process. From the docs I read that mod_wsgi has to be compiled against the same version of Python your code will be running under. Which means I will have to build from source, since Ubuntu 9.04′s version of mod_wsgi is linked with its included version of Python 2.6.
Build mod_wsgi
First, we must build and install mod_wsgi to use the correct version of Python. The installation guide for mod_wsgi is very clear, you just need to follow it. Below are the distilled steps my installation needed.
We start by installing the Apache2 development libraries (which we will need in order to install mod_wsgi), and downloading mod_wsgi from its subversion repository.
sudo apt-get install apache2-dev svn co http://modwsgi.googlecode.com/svn/branches/mod_wsgi-2.X mod_wsgi-2.x cd !$
Setting up our Django site environment with pythonbrew and virtualenv
Posted by Carles Barrobés in development on 2011/07/27
My problem: I have a server running my Django apps that I set up when I had very little experience with Django, and just some more with Python. The configuraton is using Apache and mod_wsgi on Ubuntu, running on the system’s default Python installation (2.6) which has Django 1.1 installed.
I need to update my site, which has been upgraded to use Django 1.2, and would benefit from Python 2.7 (although the site itself runs on 2.6 as well, running the tests requires 2.7, since I use some of the new convenient unittest assertions from that version, e.g. assertIsNotNone or assertIn).
Upgrading the site will require some migrations, which are not backwards compatible (e.g. some table and field renames). Since all in all will be a delicate intervention, I’d like to create a totally separate environment for testing the revamped site while the previous version is still online. Even if it was not risky, now I know better than when I started, and it’s a good time to switch to a virtual environment setup.
Therefore, in order to proceed we will:
- Install python 2.7 with
pythonbrew - Install
virtualenvandvirtualenwrapper - Create a
virtualenvwith that python version - Install all requirements with
pip - Make a Copy of the production DB, and migrate
- Run unit tests and test using the development server
- Switch to a production setup with
mod_wsgi, and the newvirtualenv
This article covers all steps but the mod_wsgi setup, which will have its specific followup.
Read the rest of this entry »
