Navigation

mod_wsgi is an Apache module developed by Graham Dumpleton.
It allows WSGI programs to be served using the Apache web
server.

This guide will outline broad steps that can be used to get a
Pyramid application running under Apache via mod_wsgi.
This particular tutorial was developed under Apple’s Mac OS X platform
(Snow Leopard, on a 32-bit Mac), but the instructions should be
largely the same for all systems, delta specific path information for
commands and files.

Note

Unfortunately these instructions almost certainly won’t work for
deploying a Pyramid application on a Windows system using
mod_wsgi. If you have experience with Pyramid and mod_wsgi
on Windows systems, please help us document this experience by submitting
documentation to the Pylons-devel maillist.

The tutorial assumes you have Apache already installed on your
system. If you do not, install Apache 2.X for your platform in
whatever manner makes sense.

Once you have Apache installed, install mod_wsgi. Use the
(excellent) installation instructions
for your platform into your system’s Apache installation.

Install virtualenv into the Python which mod_wsgi will
run using the easy_install program.

Create and install your Pyramid application. For the purposes of
this tutorial, we’ll just be using the pyramid_starter application as
a baseline application. Substitute your existing Pyramid
application as necessary if you already have one.

The first argument to get_app is the project configuration file
name. It’s best to use the production.ini file provided by your
scaffold, as it contains settings appropriate for
production. The second is the name of the section within the .ini file
that should be loaded by mod_wsgi. The assignment to the name
application is important: mod_wsgi requires finding such an
assignment when it opens the file.

The call to setup_logging initializes the standard library’s
logging module to allow logging within your application.
See Logging Configuration.

Make the pyramid.wsgi script executable.

$ cd ~/modwsgi/env
$ chmod 755 pyramid.wsgi

Edit your Apache configuration and add some stuff. I happened to
create a file named /etc/apache2/other/modwsgi.conf on my own
system while installing Apache, so this stuff went in there.

Visit http://localhost/myapp in a browser. You should see the
sample application rendered in your browser.

mod_wsgi has many knobs and a great variety of deployment
modes. This is just one representation of how you might use it to
serve up a Pyramid application. See the mod_wsgi
configuration documentation for
more in-depth configuration information.