[clo-devel] Finding out how to set up Trac on fastcgi

Hans Hübner hans.huebner at gmail.com
Mon Mar 8 05:41:30 UTC 2010


please go ahead and make the change.  I'm not sure if moving to
FastCGI will really solve the problems, though, as the root issue
seems to be that we're seeing robots that request pages which create a
lot of load to generate.  In any case, moving away from tracd is TRT,
and we can then try to improve things further by using a caching proxy
like squid.

Whatever you do, please use the Debian packages if at all possible so
that we have a chance to upgrade.


On Sun, Mar 7, 2010 at 22:27, Erik Huelsmann <ehuels at gmail.com> wrote:
> Since we seem to have lots of issues with our Trac install (most
> people find it slow; some find its availability disappointing), I
> thought I'd look at the Trac website to find out how their dev team
> advises on these matters. Well, the conclusion is simple: we're using
> the 'tracd' method of running Trac and this is certainly the only way
> how *not* to do it.
> They advise CGI for small sites or FastCGI/WSGI for larger sites. I
> estimate us to be in the latter category, so I took my own VPS (which
> is in the former category, but also runs Trac) and configured it for
> FastCGI. The steps turn out to be quite simple. I volunteer to make
> the same changes on c-l.net (which drewc already set me up for), but
> I'm posting here for review. The last thing I'd want is to open up a
> security hole in the site.
> Steps are:
>  * Install mod_fcgid (although I used mod_fastcgi, which is older and
> not recommended by the Trac team; it works though)
>  * Add the script handlers and the script alias to the httpd.conf file
> within the virtual host section for trac.c-l.net:
>  AddHandler fastcgi-script .fcgi
>  ScriptAlias / /path/to/apache/cgi-bin/trac.fcgi/
>  * copy the 'web/' subdir of the installed Trac into the cgi-bin directory
>  * copy in the cgi-bin directory "fcgi_frontend.py" to "trac.fcgi"
>  * add to the trac.fcgi script - before the first 'import' statement:
>  import os
>  os.environ['PYTHON_EGG_CACHE'] = "/tmp/httpd-egg-cache"
>  os.environ['TRAC_ENV_PARENT_DIR'] = "/path/to/parent/trac/project/dirs"
>  * create /tmp/httpd-egg-cache with the user and group used to run
> httpd and '700' access settings
>  * restart apache
> Comments?
> The effect of the change is this: by default, a single trac.fcgi
> application will be loaded - just as with our current situation.
> However, on high demand, additional instances will be spawned -
> contrary to the current situation, where a single tracd will try to
> handle all requests. When the load is over, the number of servers is
> scaled back to normal (1).
> Bye,
> Erik.
> _______________________________________________
> clo-devel mailing list
> clo-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/clo-devel

More information about the clo-devel mailing list