Changes between Version 1 and Version 2 of TracCgi

Show
Ignore:
Timestamp:
03/10/09 13:11:41 (16 years ago)
Author:
trac (IP: 127.0.0.1)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracCgi

    v1 v2  
    33To install Trac as a CGI script, you need to make the `trac.cgi` executable as a CGI by your web server. 
    44 
    5   ''Please note that using Trac via CGI is significantly slower than any other deployment method, such as [TracModPython mod_python] or [TracFastCgi FastCGI].'' 
     5{{{ 
     6#!div class=important 
     7  ''Please note that using Trac via CGI is significantly slower than any other deployment method, such as [TracModPython mod_python] or [TracFastCgi FastCGI] or even [trac:TracOnWindowsIisAjp IIS/AJP] on Windows.'' 
     8}}} 
    69 
    710If you're using [http://httpd.apache.org/ Apache HTTPD], there are a couple ways to do that: 
    811 
    912 1. Use a `ScriptAlias` to map a URL to the `trac.cgi` script 
    10  2. Copy the `trac.cgi` file into the directory for CGI executables used by your web server (commonly named `cgi-bin`). You can also create a symbolic link, but in that case make sure that the `FollowSymLinks` option is enabled for the `cgi-bin` directory. 
     13 2. Copy the `trac.cgi` file into the directory for CGI executables used by your web server (commonly named `cgi-bin`). A word of warning, copying the file directly from the repository onto a windows server 2003 machine created difficulties. Rather create a new text file and cut and copy the text into the newly created file. You can also create a symbolic link, but in that case make sure that the `FollowSymLinks` option is enabled for the `cgi-bin` directory. 
    1114 
    1215The first option is recommended as it also allows you to map the CGI to a friendly URL. 
     
    3336}}} 
    3437 
    35  ''Note that the `SetEnv` directive requires the `mod_env` module to be installed and enable.'' 
     38 ''Note that the `SetEnv` directive requires the `mod_env` module to be installed and enable. If not, you could set TRAC_ENV in trac.cgi. Just add the following code between "try:" and "from trac.web ...":'' 
     39 
     40{{{ 
     41    import os 
     42    os.environ['TRAC_ENV'] = "/path/to/projectenv" 
     43}}} 
     44 
     45 '' Or for TRAC_ENV_PARENT_DIR: '' 
     46 
     47{{{ 
     48    import os 
     49    os.environ['TRAC_ENV_PARENT_DIR'] = "/path/to/project/parent/dir" 
     50}}} 
    3651 
    3752This will make Trac available at `http://yourhost.example.org/trac`. 
     
    6075For example, if Trac is mapped to `/cgi-bin/trac.cgi` on your server, the URL of the Alias should be `/cgi-bin/trac.cgi/chrome/common`. 
    6176 
     77Similarly, if you have static resources in a projects htdocs directory, you can configure apache to serve those resources (again, put this '''before''' the `ScriptAlias` for the CGI script, and adjust names and locations to match your installation): 
     78 
     79{{{ 
     80Alias /trac/chrome/site /path/to/projectenv/htdocs 
     81<Directory "/path/to/projectenv/htdocs"> 
     82  Order allow,deny 
     83  Allow from all 
     84</Directory> 
     85}}} 
     86 
    6287Alternatively, you can set the `htdocs_location` configuration option in [wiki:TracIni trac.ini]: 
    6388{{{ 
     
    7095$ ln -s /usr/share/trac/htdocs /var/www/your_site.com/htdocs/trac-htdocs 
    7196}}} 
     97 
     98Note that in order to get this `htdocs` directory, you need first to extract the relevant Trac resources using the `deploy` command of TracAdmin: 
     99[[TracAdminHelp(deploy)]] 
     100 
    72101 
    73102== Adding Authentication == 
     
    113142}}} 
    114143 
    115 For better security, it is recommended that you either enable SSL or at least use the “Digest” authentication scheme instead of “Basic”. Please read the [http://httpd.apache.org/docs/2.0/ Apache HTTPD documentation] to find out more. 
     144For better security, it is recommended that you either enable SSL or at least use the “digest” authentication scheme instead of “Basic”. Please read the [http://httpd.apache.org/docs/2.0/ Apache HTTPD documentation] to find out more. For example, on a Debian 4.0r1 (etch) system the relevant section  in apache configuration can look like this: 
     145{{{ 
     146<Location "/trac/login"> 
     147    LoadModule auth_digest_module /usr/lib/apache2/modules/mod_auth_digest.so 
     148    AuthType Digest 
     149    AuthName "trac" 
     150    AuthDigestDomain /trac 
     151    AuthUserFile /somewhere/trac.htpasswd 
     152    Require valid-user 
     153</Location> 
     154}}} 
     155and you'll have to create your .htpasswd file with htdigest instead of htpasswd as follows: 
     156{{{ 
     157# htdigest /somewhere/trac.htpasswd trac admin 
     158}}} 
     159where the "trac" parameter above is the same as !AuthName above  ("Realm" in apache-docs).  
    116160 
    117161----