Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I seem to have a problem deploying django with mod_wsgi. In the past I've used mod_python but I want to make the change. I have been using Graham Dumpleton notes here, but it still seem to not work. I get a Internal Server Error.

django.wsgi file:

import os
import sys


os.environ['DJANGO_SETTINGS_MODULE'] = 'c2duo_crm.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

WSGIScriptAlias / /var/www/html/c2duo_crm/apache/django.wsgi

Apache httpd file:

<Directory /var/www/html/c2duo_crm/apache>
Order allow,deny
Allow from all

In my apache error log, it says I have this error This is not all of it, but I've got the most important part:

[Errno 13] Permission denied: '/.python-eggs'
[Thu Mar 03 14:59:25 2011] [error] [client]
[Thu Mar 03 14:59:25 2011] [error] [client] The Python egg cache directory is currently set to:
[Thu Mar 03 14:59:25 2011] [error] [client]
[Thu Mar 03 14:59:25 2011] [error] [client]   /.python-eggs
[Thu Mar 03 14:59:25 2011] [error] [client]
[Thu Mar 03 14:59:25 2011] [error] [client] Perhaps your account does not have write access to this directory?  You can
[Thu Mar 03 14:59:25 2011] [error] [client] change the cache directory by setting the PYTHON_EGG_CACHE environment
[Thu Mar 03 14:59:25 2011] [error] [client] variable to point to an accessible directory.
share|improve this question
Duplicate of '…;. – Graham Dumpleton Mar 3 '11 at 21:00
up vote 0 down vote accepted

You can set the WSGI variable for this. In your Apache config:

WSGIPythonEggs /var/tmp

This is the same as setting the PYTHON_EGG_CACHE environment variable which, as pointed out in topdog's answer, only works with mod_python.

share|improve this answer
That only works for embedded mode of mod_wsgi, not daemon mode. For daemon mode you use the python-eggs option to WSGIDaemonProcess. You shouldn't be using embedded mode unless you have a good reason to or are on Windows where you have no choice. Only way that works for both modes is to do it in the WSGI script file. – Graham Dumpleton Mar 5 '11 at 10:36
Based on his config, he's using embedded mode. Obviously, you're the expert on mod_wsgi... seeing as you wrote it. :) Can't than you enough for doing so! – Andrew M. Mar 5 '11 at 16:52
Yep, saw that he was likely using embedded mode. Just wanted to clarify it so people coming and reading the post later didn't think that directive universally applied across both modes. – Graham Dumpleton Mar 7 '11 at 15:35

Set this in your apache configuration

SetEnv PYTHON_EGG_CACHE /var/tmp
share|improve this answer
funny, still does not work & same still get error – Shehzad009 Mar 3 '11 at 16:15
The SetEnv method only works for mod_python and even then only for certain configurations. – Graham Dumpleton Mar 3 '11 at 20:58

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.