beta testing for mod_wsgi

Adrian Perez adrianperez at udc.es
Mon Jan 28 05:22:33 MSK 2008


El Mon, 14 Jan 2008 11:34:44 +0100
Manlio Perillo <manlio_perillo at libero.it> escribió:

> Adrian Perez ha scritto:
> 
> Note that here you do not need an extra script: you can just do in
> nginx configuration:
> 
> env  PYTHON_EGG_CACHE /tmp/test/eggs
> 
> location / {
>     wsgi_param  trac.env_path /tmp/test
>     wsgi_pass /path/to/trac.web.main dispatch_request;
> }

Confirmed, this is working in my home server now, but with a glich:
when /login is accessed, status 404 is returned to the client and the
returned HTML says "Environment not found". The user will be
authenticated anyway, because the header with the session cookie is
sent in the response. You can remove the "/login" from the URL
afterwards and Trac will see you as authenticated. 

You may see this behaviour at http://foobar.homeunix.org/trac/overlay
(try to login as guest).

The traceback looks like the following:


Traceback (most recent call last):
   File "/usr/lib/python2.5/site-packages/trac/web/main.py", line 19,in
<module>
     import cgi
   SystemError: Parent module '_wsgi__trac_?' not loaded ,


The config file section for Trac looks contains:


  env PYTHON_EGG_CACHE=/var/tmp/nginx/python-eggs;

  http {
    # some not-wsgi, not trac-related directives here...

    server {
      listen 80;
      server_name foobar.homeunix.org;
      wsgi_python_optimize 1;
      include wsgi_vars;
      wsgi_var trac.env_parent_dir /home/trac;
      wsgi_enable_subinterpreters off;

      location /trac {
        wsgi_pass
          /usr/lib/python2.5/site-packages/trac/web/main.py
          dispatch_request;
      }
      location ~ /trac/[^/]+/login {
        auth_basic "Trac";
        auth_basic_user_file /home/trac/passwd;
        wsgi_pass
          /usr/lib/python2.5/site-packages/trac/web/main.py
          dispatch_request;
      }
      location /trac/chrome/common {
        alias /usr/lib/python2.5/site-packages/trac/htdocs;
      }
    }
  }  


Any ideas?

-- 
Nano's simple, Vim's perfect.
        -- (SwifT, #gentoo at freenode)





More information about the nginx mailing list