Am Mon, 27 May 2013 01:20:53 -0700 (PDT)
schrieb Feuermurmel <[email protected]>:
> Hi folks
>
> I'm trying to set up lighty so it servers a Trac instance under a
> virtualhost but I have trouble getting it to work correctly, even
> without using virtualhosts. I've set up a minimal confiiguration for
> lighty where the Trac instance is server under "/":
>
> server.modules = ( "mod_fastcgi" )
>
> server.document-root = "/dev/null"
> server.port = 8080
>
> fastcgi.server = (
> "/" => ((
> "socket" => "/tmp/lighttpd-fastcgi-1.sock",
> "bin-path" =>
> "/opt/local/Library/Frameworks/Python.framework/
> Versions/2.6/lib/python2.6/site-packages/trac/web/fcgi_frontend.py",
> "check-local" => "disable", "bin-environment" => ("TRAC_ENV" => ...,
> "PYTHON_EGG_CACHE" => "/tmp/ trac_cache")
> ))
> )
>
> When I access the URL http://localhost:8080/ in my browser, the Trac
> instances is loaded but without any styling. When looking at the HTML
> source, the URLs for the CSS files look reasonable, e.g. the first
> <link> element:
>
> > <link rel="stylesheet" href="/chrome/common/css/trac.css"
> > type="text/css">
>
> But accessing that location gives an error message from Trac:
>
> > No handler matched request to /common/css/trac.css
>
> And the log shows contains the following line:
>
> > 10:16:27 Trac[main] DEBUG: Dispatching <RequestWithSession "GET
> > '/common/css/trac.css'">
>
> Which is weird, the /chrome/ part is missing. Is this a problem of
> lighttpd or the FastCGI implementation of Trac? When change the
> lighttpd configuration to serve the instance e.g. under /trac/ instead
> of /, everything works correctly.
>
> Many thanks for any help and suggestions!
>
> Michael
>
I guess it's sort of Tracs problem when setting up Trac as root handler.
/trac/chrome/common/* is handled and redirects to /common/* which
should be in htdocs.
But if trac is root, /chrome/common/* is redirected
to /common/* which is itself a trac request. A request that cannot be
served because there is no handler.
If you use /trac/ as root, then /common/ is not served by Trac but
lighttpd from htdocs.
Have a look at http://trac.edgewall.org/wiki/TracDev/TracURLs
and http://trac.edgewall.org/wiki/TracInstall#MappingStaticResources.
In your single root handler setup, you need to override these uri's so
they don't get served by Trac.
In both cases it is better to use alias (mod_alias) for
<base>/chrome/common uri's to serve them directly from local files
instead of making a round-trip through fcgi/trac.
--
Something like that should suffice:
server.modules += ("mod_alias")
# serve /chrome/common/* from /var/www/localhost/htdocs/chrome
alias.url = ("/chrome/common" => "/var/www/localhost/htdocs/chrome")
# everything not matching "/chrome/common/*" is handled by fcgi/trac
$HTTP["url"] !~ "^/chrome/common" {
fastcgi.server = ("/" =>
...
Have a look at
http://trac.edgewall.org/wiki/TracFastCgi#SimpleLighttpdConfiguration.
(below the auth setup)
--
You could probably also implement a plugin which serves /common/
requests from disk randomly.. for colorful trac'ing. ;)
Anyway, hope that was helpful.
Regards,
makadev
--
You received this message because you are subscribed to the Google Groups "Trac
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/trac-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.