summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Meyer <carl@oddbird.net>2012-09-27 20:16:38 -0600
committerCarl Meyer <carl@oddbird.net>2012-09-27 20:35:57 -0600
commit751a7d0c32746dc6774f1b561db523b25365148a (patch)
treed31e2a136c49aaf438f094303e40cff89f49d497
parente44bedd13f974321c0c5deece9f5ac3da02e64c0 (diff)
Fixed #18518 -- Add warning re mod_wsgi and wsgi.py environ handling.
-rw-r--r--django/conf/project_template/project_name/wsgi.py4
-rw-r--r--docs/howto/deployment/wsgi/modwsgi.txt11
2 files changed, 15 insertions, 0 deletions
diff --git a/django/conf/project_template/project_name/wsgi.py b/django/conf/project_template/project_name/wsgi.py
index b083a0e699..f768265b23 100644
--- a/django/conf/project_template/project_name/wsgi.py
+++ b/django/conf/project_template/project_name/wsgi.py
@@ -15,6 +15,10 @@ framework.
"""
import os
+# We defer to a DJANGO_SETTINGS_MODULE already in the environment. This breaks
+# if running multiple sites in the same mod_wsgi process. To fix this, use
+# mod_wsgi daemon mode with each site in its own daemon process, or use
+# os.environ["DJANGO_SETTINGS_MODULE"] = "{{ project_name }}.settings"
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings")
# This application object is used by any WSGI server configured to use this
diff --git a/docs/howto/deployment/wsgi/modwsgi.txt b/docs/howto/deployment/wsgi/modwsgi.txt
index b525255dbd..01399aa5a6 100644
--- a/docs/howto/deployment/wsgi/modwsgi.txt
+++ b/docs/howto/deployment/wsgi/modwsgi.txt
@@ -56,6 +56,15 @@ for you; otherwise, you'll need to create it. See the :doc:`WSGI overview
documentation</howto/deployment/wsgi/index>` for the default contents you
should put in this file, and what else you can add to it.
+.. warning::
+
+ If multiple Django sites are run in a single mod_wsgi process, all of them
+ will use the settings of whichever one happens to run first. This can be
+ solved with a minor edit to ``wsgi.py`` (see comment in the file for
+ details), or by :ref:`using mod_wsgi daemon mode<daemon-mode>` and ensuring
+ that each site runs in its own daemon process.
+
+
Using a virtualenv
==================
@@ -71,6 +80,8 @@ Make sure you give the correct path to your virtualenv, and replace
.. _virtualenv: http://www.virtualenv.org
+.. _daemon-mode:
+
Using mod_wsgi daemon mode
==========================