Changes between Version 2 and Version 3 of TracCgi


Ignore:
Timestamp:
Oct 18, 2009 4:54:24 PM (10 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracCgi

    v2 v3  
    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----
    118 See also:  TracGuide, TracInstall, TracFastCgi, TracModPython
     162See also:  TracGuide, TracInstall, wiki:TracModWSGI, TracFastCgi, TracModPython