3 | | Since version 0.9, Trac supports being run through the [http://www.fastcgi.com/ FastCGI] interface. Like [wiki:TracModPython mod_python], this allows Trac to remain resident, and is faster than external CGI interfaces which must start a new process for each request. However, unlike mod_python, it is able to support [http://httpd.apache.org/docs/suexec.html SuEXEC]. Additionally, it is supported by much wider variety of web servers. |
4 | | |
5 | | '''Note for Windows:''' Trac's FCGI does not run under Windows, as Windows does not implement `Socket.fromfd`, which is used by `_fcgi.py`. If you want to connect to IIS, your choice may be [trac:TracOnWindowsIisAjp AJP]. |
| 3 | [http://www.fastcgi.com/ FastCGI] interface allows Trac to remain resident much like with [wiki:TracModPython mod_python]. It is faster than external CGI interfaces which must start a new process for each request. However, unlike mod_python, FastCGI supports [http://httpd.apache.org/docs/suexec.html Apache SuEXEC], i.e. run with different permissions than web server. Additionally, it is supported by much wider variety of web servers. |
| 4 | |
| 5 | '''Note for Windows:''' Trac's FastCGI does not run under Windows, as Windows does not implement `Socket.fromfd`, which is used by `_fcgi.py`. If you want to connect to IIS, you may want to try [trac:TracOnWindowsIisAjp AJP]. |
41 | | But neither of these will work for `mod_fcgid`. A similar but partial |
42 | | solution for `mod_fcgid` is: |
43 | | {{{ |
44 | | DefaultInitEnv TRAC_ENV /path/to/env/trac/ |
45 | | }}} |
46 | | But this cannot be used in `Directory` or `Location` context, which makes it |
47 | | difficult to support multiple projects. |
48 | | |
49 | | A better method which works for both of these modules (and for [http://www.lighttpd.net/ lighttpd] and CGI as well), because it involves |
50 | | no server configuration settings for environment variables, is to set one |
51 | | of the variables in `trac.fcgi`, e.g.: |
| 39 | ==== setup with `mod_fcgid` ==== |
| 40 | Configure `ScriptAlias` (see TracCgi for details), but call `trac.fcgi` |
| 41 | instead of `trac.cgi`. Note that slash at the end - it is important. |
| 42 | {{{ |
| 43 | ScriptAlias /trac /path/to/www/trac/cgi-bin/trac.fcgi/ |
| 44 | }}} |
| 45 | |
| 46 | To setup Trac environment for `mod_fcgid` it is necessary to use |
| 47 | `FCGIDDefaultInitEnv` directive. It cannot be used in `Directory` or |
| 48 | `Location` context, so if you need to support multiple projects, try |
| 49 | alternative environment setup below. |
| 50 | |
| 51 | {{{ |
| 52 | FCGIDDefaultInitEnv TRAC_ENV /path/to/env/trac/ |
| 53 | }}} |
| 54 | |
| 55 | ==== alternative environment setup ==== |
| 56 | A better method to specify path to Trac environment it to embed the path |
| 57 | into `trac.fcgi` script itself. That doesn't require configuration of server |
| 58 | environment variables, works for both FastCgi modules |
| 59 | (and for [http://www.lighttpd.net/ lighttpd] and CGI as well): |