I am having a terrible time getting multiple vhosts running Django up and running.
I have two sites configured just like the configuration below (except with different ServerName directives and different DJANGO_SETTINGS_MODULE variables. The trouble is that Django's cache is confusing the two sites and is saying that one table from a project doesn't exist in the other project's db when I try to access it! I tried setting different PythonInterpreters, but it had no effect. It seems if I don't use different PythonPath directives for my sites, the cache gets confused. But if I do that, the settings don't work correctly and the site won't load. What am I doing wrong?
On Jun 21, 5:46 pm, Kenneth Gonsalves <law...@thenilgiris.com> wrote
> On 21-Jun-07, at 12:50 PM, rokclim...@gmail.com wrote:
> > cache gets confused. But if I do that, the settings don't work > > correctly and the site won't load. What am I doing wrong?
> you need a pythonInterpretor line in each Location with a different > name. It is in the documentation
Not true if each is in its own VirtualHost as the default behaviour of mod_python is to give each VirtualHost its own sub interpreter. You should only need to set PythonInterpreter if you were running two Django instances within the same VirtualHost at different mount points.
For completeness, it would help if OP posted both VirtualHost configurations side by side in the same message, so one can see properly the PythonPath setting for each and the DJANGO_SETTINGS_MODULE setting.
BTW, if using recent mod_python, to confirm that distinct Python sub interpreters are being used one can use:
from mod_python import apache apache.log_error("INTERPRETER %s" % apache.interpreter)
Then check the Apache error log file.
I would also suggest printing the value of sys.path to make sure it is what you expect.
More importantly, when you say "Django's cache is confusing the two sites and is saying that one table from a project doesn't exist in the other project's db", can you post the actual full message you are getting, and state where you are getting it. If it has a traceback, also include the traceback.
On 6/21/07, rokclim...@gmail.com <rokclim...@gmail.com> wrote:
> I have two sites configured just like the configuration below (except > with different ServerName directives and different > DJANGO_SETTINGS_MODULE variables. The trouble is that Django's cache > is confusing the two sites and is saying that one table from a project > doesn't exist in the other project's db when I try to access it!
Are you using the site-wide cache, and did you set your CACHE_MIDDLEWARE_KEY_PREFIX? See that setting under http://www.djangoproject.com/documentation/cache/#the-per-site-cache. If you're not using caching site-wide, explain more about how you're using caching and how it's getting confused.
Cheers, deryck
-- Deryck Hodge Lead Developer, Product Development Washington Post.Newsweek Interactive
> On Jun 21, 5:46 pm, Kenneth Gonsalves <law...@thenilgiris.com> wrote
> > On 21-Jun-07, at 12:50 PM, rokclim...@gmail.com wrote:
> > > cache gets confused. But if I do that, the settings don't work > > > correctly and the site won't load. What am I doing wrong?
> > you need a pythonInterpretor line in each Location with a different > > name. It is in the documentation
> Not true if each is in its own VirtualHost as the default behaviour of > mod_python is to give each VirtualHost its own sub interpreter. You > should only need to set PythonInterpreter if you were running two > Django instances within the same VirtualHost at different mount > points.
> For completeness, it would help if OP posted both VirtualHost > configurations side by side in the same message, so one can see > properly the PythonPath setting for each and the > DJANGO_SETTINGS_MODULE setting.
> BTW, if using recent mod_python, to confirm that distinct Python sub > interpreters are being used one can use:
> from mod_python import apache > apache.log_error("INTERPRETER %s" % apache.interpreter)
> Then check the Apache error log file.
> I would also suggest printing the value of sys.path to make sure it is > what you expect.
> More importantly, when you say "Django's cache is confusing the two > sites and is saying that one table from a project doesn't exist in the > other project's db", can you post the actual full message you are > getting, and state where you are getting it. If it has a traceback, > also include the traceback.
> CustomLog /var/log/apache2/agdweb.gtagd.org-access.log > combined > ServerSignature Off > </VirtualHost>
> On Jun 21, 5:45 am, Graham Dumpleton <Graham.Dumple...@gmail.com> > wrote:
> > On Jun 21, 5:46 pm, Kenneth Gonsalves <law...@thenilgiris.com> wrote
> > > On 21-Jun-07, at 12:50 PM, rokclim...@gmail.com wrote:
> > > > cache gets confused. But if I do that, the settings don't work > > > > correctly and the site won't load. What am I doing wrong?
> > > you need a pythonInterpretor line in each Location with a different > > > name. It is in the documentation
> > Not true if each is in its own VirtualHost as the default behaviour of > > mod_python is to give each VirtualHost its own sub interpreter. You > > should only need to set PythonInterpreter if you were running two > > Django instances within the same VirtualHost at different mount > > points.
> > For completeness, it would help if OP posted both VirtualHost > > configurations side by side in the same message, so one can see > > properly the PythonPath setting for each and the > > DJANGO_SETTINGS_MODULE setting.
> > BTW, if using recent mod_python, to confirm that distinct Python sub > > interpreters are being used one can use:
> > I would also suggest printing the value of sys.path to make sure it is > > what you expect.
> > More importantly, when you say "Django's cache is confusing the two > > sites and is saying that one table from a project doesn't exist in the > > other project's db", can you post the actual full message you are > > getting, and state where you are getting it. If it has a traceback, > > also include the traceback.
> > On Jun 21, 5:45 am, Graham Dumpleton <Graham.Dumple...@gmail.com> > > wrote:
> > > On Jun 21, 5:46 pm, Kenneth Gonsalves <law...@thenilgiris.com> wrote
> > > > On 21-Jun-07, at 12:50 PM, rokclim...@gmail.com wrote:
> > > > > cache gets confused. But if I do that, the settings don't work > > > > > correctly and the site won't load. What am I doing wrong?
> > > > you need a pythonInterpretor line in each Location with a different > > > > name. It is in the documentation
> > > Not true if each is in its own VirtualHost as the default behaviour of > > > mod_python is to give each VirtualHost its own sub interpreter. You > > > should only need to set PythonInterpreter if you were running two > > > Django instances within the same VirtualHost at different mount > > > points.
> > > For completeness, it would help if OP posted both VirtualHost > > > configurations side by side in the same message, so one can see > > > properly the PythonPath setting for each and the > > > DJANGO_SETTINGS_MODULE setting.
> > > BTW, if using recent mod_python, to confirm that distinct Python sub > > > interpreters are being used one can use:
> > > I would also suggest printing the value of sys.path to make sure it is > > > what you expect.
> > > More importantly, when you say "Django's cache is confusing the two > > > sites and is saying that one table from a project doesn't exist in the > > > other project's db", can you post the actual full message you are > > > getting, and state where you are getting it. If it has a traceback, > > > also include the traceback.
If the details in the error page are to be believed, it would look like one of the URL mapping rules is referencing the other site.
I really wish the Django error page would show the interpreter name when using mod_python. I guess another suggestion I should create a ticket for when I can catch up with my list of things to do.. :-)
Graham
On Jun 21, 11:39 pm, "rokclim...@gmail.com" <rokclim...@gmail.com> wrote:
> CustomLog /var/log/apache2/agdweb.gtagd.org-access.log > combined > ServerSignature Off > </VirtualHost>
> On Jun 21, 5:45 am, Graham Dumpleton <Graham.Dumple...@gmail.com> > wrote:
> > On Jun 21, 5:46 pm, Kenneth Gonsalves <law...@thenilgiris.com> wrote
> > > On 21-Jun-07, at 12:50 PM, rokclim...@gmail.com wrote:
> > > > cache gets confused. But if I do that, the settings don't work > > > > correctly and the site won't load. What am I doing wrong?
> > > you need a pythonInterpretor line in each Location with a different > > > name. It is in the documentation
> > Not true if each is in its own VirtualHost as the default behaviour of > >mod_pythonis to give each VirtualHost its own sub interpreter. You > > should only need to set PythonInterpreter if you were running two > > Django instances within the same VirtualHost at different mount > > points.
> > For completeness, it would help if OP posted both VirtualHost > > configurations side by side in the same message, so one can see > > properly the PythonPath setting for each and the > > DJANGO_SETTINGS_MODULE setting.
> > BTW, if using recentmod_python, to confirm that distinct Python sub > > interpreters are being used one can use:
> > I would also suggest printing the value of sys.path to make sure it is > > what you expect.
> > More importantly, when you say "Django's cache is confusing the two > > sites and is saying that one table from a project doesn't exist in the > > other project's db", can you post the actual full message you are > > getting, and state where you are getting it. If it has a traceback, > > also include the traceback.
Interestingly, I am getting some strange errors when trying to output the interpreter ID to my error log. Attempting to do so generates an error in my logs:
[Thu Jun 21 20:00:23 2007] [error] [client 209.155.235.13] PythonHandler django.core.handlers.modpython: File "/djangosites/ atlantaice/settings.py", line 3, in ?\n apache.log_error("INTERPRETER %s" % apache.interpreter) [Thu Jun 21 20:00:23 2007] [error] [client 209.155.235.13] PythonHandler django.core.handlers.modpython: AttributeError: 'module' object has no attribute 'interpreter'
atlantaice.urls doesn't reference AGDWeb in any way.