close Warning: Can't synchronize with repository "(default)" (Unsupported version control system "svn": libapr-1.so.0: failed to map segment from shared object: Cannot allocate memory). Look in the Trac log for more information.

Changes between Version 5 and Version 6 of TracFastCgi


Ignore:
Timestamp:
2010-02-17T07:22:03+01:00 (5 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracFastCgi

    v5 v6  
    11= Trac with FastCGI = 
    22 
    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]. 
    66 
    77== Simple Apache configuration == 
    88 
    99There are two FastCGI modules commonly available for Apache: `mod_fastcgi` and 
    10 `mod_fcgid`.  The `FastCgiIpcDir` and `FastCgiConfig` directives discussed 
    11 below are `mod_fastcgi` directives; the `DefaultInitEnv` is a `mod_fcgid` 
    12 directive. 
    13  
    14 For `mod_fastcgi`, add the following to an appropriate Apache configuration 
    15 file: 
     10`mod_fcgid` (preferred). The latter is more up-to-date. 
     11 
     12==== setup with `mod_fastcgi` ==== 
     13`mod_fastcgi` uses `FastCgiIpcDir` and `FastCgiConfig` directives that should be added to an appropriate Apache configuration file: 
    1614{{{ 
    1715# Enable fastcgi for .fcgi files 
     
    3937}}} 
    4038 
    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` ==== 
     40Configure `ScriptAlias` (see TracCgi for details), but call `trac.fcgi` 
     41instead of `trac.cgi`. Note that slash at the end - it is important. 
     42{{{ 
     43ScriptAlias /trac /path/to/www/trac/cgi-bin/trac.fcgi/ 
     44}}} 
     45 
     46To 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 
     49alternative environment setup below. 
     50 
     51{{{ 
     52FCGIDDefaultInitEnv TRAC_ENV /path/to/env/trac/ 
     53}}} 
     54 
     55==== alternative environment setup ==== 
     56A better method to specify path to Trac environment it to embed the path 
     57into `trac.fcgi` script itself. That doesn't require configuration of server 
     58environment variables, works for both FastCgi modules 
     59(and for [http://www.lighttpd.net/ lighttpd] and CGI as well): 
    5260{{{ 
    5361import os 
     
    6068}}} 
    6169 
    62 Using this method, different projects can be supported by using different 
    63 `.fcgi` scripts with different `ScriptAliases`, copying and appropriately 
    64 renaming `trac.fcgi` and adding the above code to create each such script. 
     70With this method different projects can be supported by using different 
     71`.fcgi` scripts with different `ScriptAliases`. 
    6572 
    6673See [https://coderanger.net/~coderanger/httpd/fcgi_example.conf this fcgid example config] which uses a !ScriptAlias directive with trac.fcgi with a trailing / like this: 
     
    97104For using `trac.fcgi`(prior to 0.11) / fcgi_frontend.py (0.11) with lighttpd add the following to your lighttpd.conf: 
    98105{{{ 
    99 #var.fcgi_binary="/path/to/fcgi_frontend.py" # 0.11 if installed with easy_setup, it is inside the egg directory 
     106#var.fcgi_binary="/usr/bin/python /path/to/fcgi_frontend.py" # 0.11 if installed with easy_setup, it is inside the egg directory 
    100107var.fcgi_binary="/path/to/cgi-bin/trac.fcgi" # 0.10 name of prior fcgi executable 
    101108fastcgi.server = ("/trac" =>