beta testing for mod_wsgi
Manlio Perillo
manlio_perillo at libero.it
Mon Jan 28 13:47:29 MSK 2008
Adrian Perez ha scritto:
> 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).
>
What is the password?
I'm unable to login.
> 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 ,
>
>
Ok, this is a bug of mod_wsgi.
The module name is built from the name of the location used, replacing
'/' with '_'.
In you configuration, the location name is:
/trac/[^/]+/login
and this result in a invalid name for a Python module.
I have to admit that I have never thought about this possibility ;-).
It seems that I have to change the algorithm used for built the module name.
Maybe I should add the possibility to specify the module name in the
wsgi_pass directive, or I should use an hash of the module name.
> [...]
Manlio Perillo
More information about the nginx
mailing list