= Installing Trac as CGI =
To install Trac as a CGI script, make `trac/cgi-bin/trac.cgi` executable as a CGI by your web server. If you're using Apache HTTPD, there are a couple ways to do that:
1. Use a `ScriptAlias` to map an URL to the CGI:
{{{
ScriptAlias /trac.cgi /usr/share/trac/cgi-bin/trac.cgi
}}}
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.
The first option is recommended as it also allows you to map the CGI to a friendly URL.
Now, edit the Apache configuration file and add this snippet, file names and locations changed to match your installation:
{{{
Alias /cgi-bin/trac.cgi/chrome/common /usr/share/trac/htdocs
ScriptAlias /cgi-bin/trac.cgi /usr/share/trac/cgi-bin/trac.cgi
Order allow,deny
Allow from all
# Trac need to know where the database is located
SetEnv TRAC_ENV "/path/to/projectenv"
}}}
''Note: If Apache complains about the !SetEnv line make sure that the mod_env module is available and enabled.''
''Note: If you are using the [http://httpd.apache.org/docs/suexec.html Apache suEXEC] feature see [http://projects.edgewall.com/trac/wiki/ApacheSuexec ApacheSuexec] (on the main Trac site).''
== Adding Authentication ==
The simplest way to enable authentication with Apache is to create a password file. Use the `htpasswd` program to create the password file:
{{{
$ htpasswd -c /somewhere/trac.htpasswd admin
New password:
Re-type new password:
Adding password for user admin
}}}
After the first user, you dont need the "-c" option anymore:
{{{
$ htpasswd /somewhere/trac.htpasswd john
New password:
Re-type new password:
Adding password for user john
}}}
''See the man page for `htpasswd` for full documentation.''
After you've created the users, you can set their permissions using TracPermissions.
Now, you'll need to enable authentication against the password file in the Apache configuration:
{{{
AuthType Basic
AuthName "Trac"
AuthUserFile /somewhere/trac.htpasswd
Require valid-user
}}}
----
See also: TracGuide, TracInstall, TracFastCgi, TracModPython