> What you probably want is: > > WSGIDaemonProcess mysite user=intrack group=intrack > python-path=/home/intrack/intrack_pythonenv/lib/python2.5/site-packages > processes=2 threads=25 > > WSGIProcessGroup mysite > > WSGIScriptAlias / /var/www/wsgi_scripts/InTrack.wsgi >
Thank you kindly, that took me another step forward. Now I got the following error in log: [Thu Apr 16 09:29:09 2009] [error] [client 41.240.91.23] (13) Permission denied: mod_wsgi (pid=19767): Unable to connect to WSGI daemon process 'InTrack' on '/etc/httpd/logs/wsgi.19713.0.1.sock' after multiple attempts. I take it, in this case, that my user 'intrack' doesn't have permission to connect to the socket /etc/httpd/logs/wsgi. 19713.0.1.sock. Is this right and do you have any suggestions how to rectify this please? I can confirm that the socket file /etc/httpd/logs/wsgi.19713.0.1.sock does exist hence has been created. -Alen On Apr 15, 11:17 pm, Graham Dumpleton <graham.dumple...@gmail.com> wrote: > 2009/4/16 Alen Ribic <alen.ri...@gmail.com>: > > > > > Thank you Graham for your reply. > > > You are definitely right about the permissions. > > Apache User and Group directives are both set to 'apache'. > > My wsgi (django) application is in the /home/intrack which is the > > 'intrack' user. > > > I added the WSGIDaemonProcess directive: > > # > > WSGIDaemonProcess user=intrack group=intrack python-path=/home/intrack/ > > intrack_pythonenv/lib/python2.5/site-packages processes=2 threads=25 > > # > > WSGIScriptAlias / /var/www/wsgi_scripts/InTrack.wsgi > > This is wrong. See: > > http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide > http://code.google.com/p/modwsgi/wiki/VirtualEnvironments > > for complete examples. > > The mistakes are that you have called the daemon process group > 'user=intrack' as first argument is supposed to be the name. You also > don't appear to have WSGIProcessGroup directive to delegate > application to that process group. > > What you probably want is: > > WSGIDaemonProcess mysite user=intrack group=intrack > python-path=/home/intrack/intrack_pythonenv/lib/python2.5/site-packages > processes=2 threads=25 > > WSGIProcessGroup mysite > > WSGIScriptAlias / /var/www/wsgi_scripts/InTrack.wsgi > > Graham > > > That still gave me a same error "ImportError: No module named > > django.core.handlers.wsgi" > > > Question: who is the .wsgi script ran by? Apache special user? or the > > one defined on WSGIDaemonProcess (in my case 'intrack' user)? > > > Also, am I on the right track here using WSGIDaemonProcess to set the > > user I wish to run the application as? (I have fully tested the django > > application using the 'intrack' user. By the way, /home/intrack has > > the django app and the python virtual environment.) > > > I started the httpd service as root by the way. > > > Is perhaps the WSGIDaemonProcess not using the intrack user to run the > > python process? > > > -Alen > > > On Apr 15, 12:35 pm, Graham Dumpleton <graham.dumple...@gmail.com> > > wrote: > >> 2009/4/15 Alen Ribic <alen.ri...@gmail.com>: > > >> > I've seen a few posts related to Django, virtualenv and mod_wsgi > >> > however still can't solve my problem. > > >> > I keep getting "ImportError: No module named > >> > django.core.handlers.wsgi" in my apache error log no matter what I > >> > try. > > >> Read: > > >> http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Access_Rights... > > >> Apache runs as a special user . If you are using embedded mode, or > >> daemon mode but haven't set 'user' option to be your account, then may > >> not be able to read directories/files if permissions on them aren't > >> correct. > > >> Try your command line test, but become the user that Apache runs as > >> first. If that fails you know this is the problem. > > >> In your command line test from your account, also do: > > >> import django > >> print django.__file__ > > >> Ensure that that is the version you want used. Then check that all the > >> files readable to others and that directories readable and searchable > >> to others. For directories, this includes directories back up the > >> hierarchy to root of file system. > > >> Graham > > >> > Here is the wsgi script: > > >> > #### intrack.wsgi ############################################ > >> > import os, sys, site > > >> > import logging > > >> > #create logger > >> > logger = logging.getLogger("intrack_wsgi") > > >> > logger.setLevel(logging.DEBUG) > > >> > fh = logging.FileHandler("/tmp/InTrackWSGI.log") > >> > fh.setLevel(logging.DEBUG) > > >> > formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s > >> > - %(message)s") > > >> > fh.setFormatter(formatter) > >> > logger.addHandler(fh) > > >> > sys.path.append('/home/intrack/intrack_pythonenv/projects') > >> > sys.path.append('/home/intrack/intrack_pythonenv/projects/InTrack') > >> > os.environ['DJANGO_SETTINGS_MODULE'] = 'InTrack.settings' > > >> > ALLDIRS = ['/home/intrack/intrack_pythonenv/lib/python2.5/site- > >> > packages'] > > >> > # Remember original sys.path. > >> > prev_sys_path = list(sys.path) > > >> > # Add each new site-packages directory. > >> > for directory in ALLDIRS: > >> > site.addsitedir(directory) > > >> > # Reorder sys.path so new directories at the front. > >> > new_sys_path = [] > >> > for item in list(sys.path): > >> > #logger.debug("sys.path item: %s" % item) > >> > if item not in prev_sys_path: > >> > new_sys_path.append(item) > >> > sys.path.remove(item) > >> > sys.path[:0] = new_sys_path > > >> > logger.debug(sys.path) > >> > logger.debug("exec_prefix: %s" % sys.exec_prefix) > >> > logger.debug("version: %s" % sys.version) > > >> > import django.core.handlers.wsgi > > >> > application = django.core.handlers.wsgi.WSGIHandler() > > >> > #### end - intrack.wsgi ############################################ > > >> > #### apache wsgi.conf > >> > ################################################# > >> > WSGIScriptAlias / /var/www/wsgi_scripts/InTrack.wsgi > >> > #### end - apache wsgi.conf > >> > ############################################ > > >> > #### apache error log ############################################ > >> > [Wed Apr 15 12:04:29 2009] [error] [client 10.10.0.47] Traceback (most > >> > recent call last): > >> > [Wed Apr 15 12:04:29 2009] [error] [client 10.10.0.47] File "/var/ > >> > www/wsgi_scripts/InTrack.wsgi", line 44, in <module> > >> > [Wed Apr 15 12:04:29 2009] [error] [client 10.10.0.47] import > >> > django.core.handlers.wsgi > >> > [Wed Apr 15 12:04:29 2009] [error] [client 10.10.0.47] ImportError: No > >> > module named django.core.handlers.wsgi > >> > [Wed Apr 15 12:04:32 2009] [error] [client 10.10.0.47] mod_wsgi > >> > (pid=3610): Target WSGI script '/var/www/wsgi_scripts/InTrack.wsgi' > >> > cannot be loaded as Python module. > >> > [Wed Apr 15 12:04:32 2009] [error] [client 10.10.0.47] mod_wsgi > >> > (pid=3610): Exception occurred processing WSGI script '/var/www/ > >> > wsgi_scripts/InTrack.wsgi'. > >> > [Wed Apr 15 12:04:32 2009] [error] [client 10.10.0.47] Traceback (most > >> > recent call last): > >> > [Wed Apr 15 12:04:32 2009] [error] [client 10.10.0.47] File "/var/ > >> > www/wsgi_scripts/InTrack.wsgi", line 44, in <module> > >> > [Wed Apr 15 12:04:32 2009] [error] [client 10.10.0.47] import > >> > django.core.handlers.wsgi > >> > [Wed Apr 15 12:04:32 2009] [error] [client 10.10.0.47] ImportError: No > >> > module named django.core.handlers.wsgi > >> > #### end - apache error log > >> > ############################################ > > >> > #### wsgi script log ############################################ > >> > 2009-04-15 12:14:13,938 - intrack_wsgi - DEBUG - ['/home/intrack/ > >> > intrack_pythonenv/lib/python2.5/site-packages', '/usr/local/lib/ > >> > python25.zip', '/usr/local/lib/python2.5', '/usr/local/lib/python2.5/ > >> > plat-linux2', '/usr/local/lib/python2.5/lib-tk', '/usr/local/lib/ > >> > python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/ > >> > home/intrack/intrack_pythonenv/projects', '/home/intrack/ > >> > intrack_pythonenv/projects/InTrack', '/home/intrack/intrack_pythonenv/ > >> > projects', '/home/intrack/intrack_pythonenv/projects/InTrack', '/home/ > >> > intrack/intrack_pythonenv/lib/python2.5/site-packages'] > >> > 2009-04-15 12:14:13,939 - intrack_wsgi - DEBUG - exec_prefix: /usr/ > >> > local > >> > 2009-04-15 12:14:13,939 - intrack_wsgi - DEBUG - version: 2.5.4 > >> > (r254:67916, Apr 14 2009, 15:48:34) > >> > [GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] > >> > #### end - wsgi script log > >> > ############################################ > > >> > I tried this, from the command shell, running the /usr/local/bin/ > >> > python (which is the version of python that the wsgi module is running > >> > as per the log above '/usr/local') and then I manually set the > >> > sys.path to: > >> > ['/home/intrack/intrack_pythonenv/lib/python2.5/site-packages', '/usr/ > >> > local/lib/python25.zip', '/usr/local/lib/python2.5', '/usr/local/lib/ > >> > python2.5/plat-linux2', '/usr/local/lib/python2.5/lib-tk', '/usr/local/ > >> > lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', > >> > '/home/intrack/intrack_pythonenv/projects', '/home/intrack/ > >> > intrack_pythonenv/projects/InTrack', '/home/intrack/intrack_pythonenv/ > >> > projects', '/home/intrack/intrack_pythonenv/projects/InTrack', '/home/ > >> > intrack/intrack_pythonenv/lib/python2.5/site-packages'] > >> > Exactly as what the log says in the wsgi script that it has the > >> > sys.path set to and guess what? The "import django.core.handlers.wsgi" > >> > works 100%. > > >> > So why is it that when wsgi module runs in apache that it doesn't > >> > pickup the django.* when whats in the sys.path works correctly if ran > >> > manually from interpreter? > > >> > I would gladly appreciate if someone could shed some light on this. > > >> > Regards, > >> > -Alen > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---