Hmmm, that crappy setup information is in: http://code.djangoproject.com/wiki/django_apache_and_mod_wsgi
I'll fix it up. :-( Graham 2009/4/1 Graham Dumpleton <graham.dumple...@gmail.com>: > 2009/4/1 Tim Valenta <tonightslasts...@gmail.com>: >> Yes, I did. Now that you mention it, I am not sure why I felt I needed to >> do that. >> ... Something must have prompted me to do it, but I cannot remember now. It >> must have had something to do with seeing the following example line: >> >> os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.apache.settings_production' >> >> ... And then misinterpreting/misreading the example lines on the mod_wsgi >> page for IntegrationWithDjango: >> >> sys.path.append('/usr/local/django') >> >> >> sys.path.append('/usr/local/django/mysite') >> >> So, looks like I was being more daft than I originally thought. Note to >> self (and anybody else who ever finds themselves being equally daft): there >> is no reason to put the ./apache/ directory in the sys.path; only a need to >> make sure it can get there if needed, by providing the ./apache/__init__.py >> file (if wanting to import a production settings/urls file from ./apache/) > > Except that you wouldn't even want to be putting anything in the > 'apache' directory besides the WSGI script file. > > The reason for this is that one has to tell Apache that is is okay to > use stuff in the 'apache' directory. This is done with the Directory > directive container of the form: > > <Directory /some/path/mysite/apache> > Order deny,allow > Allow from all > </Directory> > > By doing that, you are technically also saying that it could serve up > static files in that directory. Of course that would only eventuate > if Apache configuration was screwed up such that you exposed that > directory via a URL somehow. > > If this was accidentally done and you had settings files in there, > someone could potentially access your settings file and any database > passwords in it. > > You might therefore see why always have the WSGI script file in > directory by itself. It just reduces risk of exposing stuff you > shouldn't if Apache misconfigured. > > For similar reasons, should never stick a Django project under Apache > document root. Don't set up Apache properly and people could download > your source code. > > if you remember where you saw example of putting settings stuff in > 'apache' directory let me know. If it was a blog entry I'll try and > add a comment against it indicating how bad it is. :-) > > Graham > >> Thanks for continuing to work through it-- I was clearly burned out >> yesterday, and my troubles were self-created! >> Tim >> On Tue, Mar 31, 2009 at 5:28 PM, Graham Dumpleton >> <graham.dumple...@gmail.com> wrote: >>> >>> 2009/4/1 Tim Valenta <tonightslasts...@gmail.com>: >>> > Yes, the file path was mysite/apache/django.wsgi . I was getting >>> > unhelpful >>> > server-500 errors when loading apache (which I haven't fully resolved >>> > yet-- >>> > will try tonight), so I was trying to run the .wsgi file all by itself, >>> > to >>> > confirm that nothing was amiss in the Python code itself. >>> > Thus I had renamed it to mysite/apache/django.py and was just executing >>> > it >>> > for testing. Within that code, I was saying "django.core.....", which >>> > would >>> > circling back on itself, since the first directory checked would have >>> > been >>> > its own executing directory. >>> > I have a settings_production.py file in the same ./apache/ directory, >>> > but as >>> > of yet, it's not in use. >>> >>> The only thing in the 'apache' subdirectory should be the WSGI script >>> file, and you should not be adding that directory to sys.path. I can't >>> see at the moment how calling it django.py could have caused a problem >>> as long as you hadn't added that directory to sys.path. >>> >>> So, had you added the 'apache' directory to sys.path? >>> >>> Graham >>> >>> > On Tue, Mar 31, 2009 at 4:56 PM, Graham Dumpleton >>> > <graham.dumple...@gmail.com> wrote: >>> >> >>> >> Where have you put the WSGI script file? If it was put in an 'apache' >>> >> subdirectory, as the documentation indicates, instead of same >>> >> directory as the settings.py file you shouldn't have this problem. >>> >> >>> >> 2009/4/1 Tim Valenta <tonightslasts...@gmail.com>: >>> >> > Hello Graham-- Late last night before falling asleep I realized that >>> >> > this >>> >> > could be the only explanation, and suddenly realized that-- in fact-- >>> >> > the >>> >> > very .wsgi file I wanted to test was called "django.wsgi", which I >>> >> > had >>> >> > renamed to "django.py" for something of a unit-test. Therefore, my >>> >> > import >>> >> > was finding itself first, no matter where I was running the lone >>> >> > file. >>> >> > Ultimately the issue was me being daft :) About 10 minutes ago >>> >> > before >>> >> > leaving the house this morning, I turned on the monitor and renamed >>> >> > the >>> >> > file >>> >> > and tested again, and it worked without any of the above mentioned >>> >> > issues. >>> >> > Thanks for the reply. >>> >> > Tim >>> >> > >>> >> > On Mon, Mar 30, 2009 at 11:44 PM, Graham Dumpleton >>> >> > <graham.dumple...@gmail.com> wrote: >>> >> >> >>> >> >> 2009/3/31 Tim Valenta <tonightslasts...@gmail.com>: >>> >> >> > Hello all-- >>> >> >> > >>> >> >> > I've been casually trying to get mod_wsgi working in a Ubuntu 8.10 >>> >> >> > sever, to >>> >> >> > run even the simplest of Django test projects. So far, I've had >>> >> >> > no >>> >> >> > dice >>> >> >> > getting the example Django wsgi scripts to work. >>> >> >> > >>> >> >> > Most simply, I'm having an import error, which is baffling me >>> >> >> > beyond >>> >> >> > my >>> >> >> > sanity. I've examined both the docs found on the mod_wsgi site, >>> >> >> > and >>> >> >> > also on >>> >> >> > Django's wiki system (found here: >>> >> >> > http://code.djangoproject.com/wiki/django_apache_and_mod_wsgi ). >>> >> >> > >>> >> >> > Currently, I've been following the latter docs, as they seemed >>> >> >> > more >>> >> >> > comprehensive from start to finish. >>> >> >> > >>> >> >> > No matter what I append to the sys.path variable in the example >>> >> >> > '.wsgi' >>> >> >> > file, I cannot import django.core.handlers.wsgi. I get a "No >>> >> >> > module >>> >> >> > named >>> >> >> > core.handlers.wsgi" ImportError. Running python from within the >>> >> >> > root >>> >> >> > SVN >>> >> >> > checkout of django, this import works wonderfully. Elsewhere, not >>> >> >> > so. >>> >> >> > >>> >> >> > This might be more of a Python question than a mod_wsgi or django >>> >> >> > question, >>> >> >> > but am I wrong to assume that doing >>> >> >> > sys.path.append("/home/rydia/django") >>> >> >> > (where my svn checkout lives) should put that on my PythonPath, >>> >> >> > for >>> >> >> > proper >>> >> >> > module imports? >>> >> >> > >>> >> >> > Perhaps I'm just missing something very basic, but my head has had >>> >> >> > it >>> >> >> > today >>> >> >> > with more projects than I can handle :P >>> >> >> > Quick notes: apache itself runs great, aliases to my media >>> >> >> > directory >>> >> >> > works >>> >> >> > great, though I can't verify any success in the whole mod_wsgi >>> >> >> > department. >>> >> >> >>> >> >> Note the following: >>> >> >> >>> >> >> $ python >>> >> >> Python 2.3.5 (#1, Jan 12 2009, 14:43:55) >>> >> >> [GCC 3.3 20030304 (Apple Computer, Inc. build 1819)] on darwin >>> >> >> Type "help", "copyright", "credits" or "license" for more >>> >> >> information. >>> >> >> >>> import a.b >>> >> >> Traceback (most recent call last): >>> >> >> File "<stdin>", line 1, in ? >>> >> >> ImportError: No module named a.b >>> >> >> >>> import os >>> >> >> >>> import os.c.d >>> >> >> Traceback (most recent call last): >>> >> >> File "<stdin>", line 1, in ? >>> >> >> ImportError: No module named c.d >>> >> >> >>> >> >> If you import a module where top level module doesn't exist, the >>> >> >> ImportError, shows the full dotted path. >>> >> >> >>> >> >> If however you import a module where the top level module does >>> >> >> exist, >>> >> >> but the sub modules don't, then only the missing sub modules are >>> >> >> listed in the ImportError. >>> >> >> >>> >> >> In your case the error says "No module named core.handlers.wsgi". >>> >> >> This >>> >> >> means that the 'django' top level module was found, but that there >>> >> >> were no sub modules of the names requested in it. >>> >> >> >>> >> >> What is likely therefore happening is one of a few things. >>> >> >> >>> >> >> 1. You are running Apache such that code runs as Apache user and >>> >> >> although that user has access to top level 'django' package >>> >> >> directory, >>> >> >> it doesn't have permissions to read sub modules. >>> >> >> >>> >> >> 2. You have a file based module called 'django.py' somewhere on your >>> >> >> path and it is finding that first. That or it is a directory called >>> >> >> 'django' and it has in it a '__init__.py' file. >>> >> >> >>> >> >> What I suggest you do is add the following to the start of your >>> >> >> .wsgi >>> >> >> script file. >>> >> >> >>> >> >> import sys >>> >> >> import django >>> >> >> >>> >> >> print >> sys.stderr, 'django __file__', django.__file__ >>> >> >> >>> >> >> Look at the Apache error log to see where that 'django' top level >>> >> >> module is being picked up from. See if that is the one you expect. >>> >> >> See >>> >> >> if everything looks to have correct permissions. See if it might >>> >> >> actually be some file module called 'django.py' or empty 'django' >>> >> >> package directory. >>> >> >> >>> >> >> Post results as would be curious to know so can add this to the mind >>> >> >> back of problems that come up. >>> >> >> >>> >> >> Graham >>> >> >> >>> >> >> >>> >> > >>> >> > >>> >> > >>> >> > -- >>> >> > "Python is the unholy bastard step-child between Ruby and PHP." >>> >> > "I'd let an ipod blow up on my leg for $150,000." >>> >> > "but Ben and Jerry do make a lovely couple." >>> >> > >>> >> > > >>> >> > >>> >> >>> >> >>> > >>> > >>> > >>> > -- >>> > "Python is the unholy bastard step-child between Ruby and PHP." >>> > "I'd let an ipod blow up on my leg for $150,000." >>> > "but Ben and Jerry do make a lovely couple." >>> > >>> > > >>> > >>> >>> >> >> >> >> -- >> "Python is the unholy bastard step-child between Ruby and PHP." >> "I'd let an ipod blow up on my leg for $150,000." >> "but Ben and Jerry do make a lovely couple." >> >> >> >> > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "modwsgi" group. To post to this group, send email to modwsgi@googlegroups.com To unsubscribe from this group, send email to modwsgi+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/modwsgi?hl=en -~----------~----~----~----~------~----~------~--~---