annotate examples/trac/wiki-default/TracCgi @ 39:93b4dcbafd7b trunk

Copy Trac to main branch.
author cmlenz
date Mon, 03 Jul 2006 18:53:27 +0000
parents
children
rev   line source
39
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
1 = Installing Trac as CGI =
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
2
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
3 To install Trac as a CGI script, you need to make the `trac.cgi` executable as a CGI by your web server. If you're using [http://httpd.apache.org/ Apache HTTPD], there are a couple ways to do that:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
4
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
5 1. Use a `ScriptAlias` to map a URL to the `trac.cgi` script
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
6 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.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
7
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
8 The first option is recommended as it also allows you to map the CGI to a friendly URL.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
9
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
10 Now, edit the Apache configuration file and add this snippet, file names and locations changed to match your installation:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
11 {{{
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
12 ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
13
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
14 # Trac needs to know where the database is located
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
15 <Location "/trac">
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
16 SetEnv TRAC_ENV "/path/to/projectenv"
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
17 </Location>
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
18 }}}
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
19
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
20 This will make Trac available at `http://yourhost.example.org/trac`.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
21
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
22 ''Note: Make sure that the modules mod_alias and mod_env modules are available and enabled in your Apache configuration, otherwise Apache will complain about the above snippet.''
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
23
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
24 ''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).''
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
25
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
26 == Mapping Static Resources ==
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
27
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
28 Out of the box, Trac will serve static resources such as style sheets or images itself. For a CGI setup, though, this is highly undesirable, because it results in the CGI script being invoked for documents that could be more efficiently served by the web server.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
29
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
30 Web servers such as [http://httpd.apache.org/ Apache HTTPD] allow you to create “Aliases” to resources, thereby giving them a virtual URL that doesn't necessarily bear any resemblance to the layout of the servers file system. We already used this capability above when defining a `ScriptAlias` for the CGI script, and we'll use it now to map requests to the static resources to the directory on the file system that contains them, thereby bypassing the processing of such requests by the CGI script.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
31
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
32 Edit the Apache configuration file again and add the following snippet '''before''' the `ScriptAlias` for the CGI script , file names and locations changed to match your installation:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
33 {{{
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
34 Alias /trac/chrome/common /usr/share/trac/htdocs
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
35 <Directory "/usr/share/trac/htdocs">
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
36 Order allow,deny
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
37 Allow from all
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
38 </Directory>
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
39 }}}
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
40
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
41 Note that whatever URL path you mapped the `trac.cgi` script to, the path `/chrome/common` is the path you have to append to that location to intercept requests to the static resources.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
42
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
43 For 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`.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
44
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
45 Alternatively, you can set the `htdocs_location` configuration option in [wiki:TracIni trac.ini]:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
46 {{{
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
47 [trac]
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
48 htdocs_location = /trac-htdocs
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
49 }}}
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
50
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
51 Trac will then use this URL when embedding static resources into HTML pages. Of course, you still need to make the Trac `htdocs` directory available through the web server at the specified URL, for example by copying (or linking) the directory into the document root of the web server.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
52
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
53 == Adding Authentication ==
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
54
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
55 The simplest way to enable authentication with Apache is to create a password file. Use the `htpasswd` program to create the password file:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
56 {{{
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
57 $ htpasswd -c /somewhere/trac.htpasswd admin
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
58 New password: <type password>
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
59 Re-type new password: <type password again>
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
60 Adding password for user admin
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
61 }}}
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
62
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
63 After the first user, you dont need the "-c" option anymore:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
64 {{{
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
65 $ htpasswd /somewhere/trac.htpasswd john
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
66 New password: <type password>
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
67 Re-type new password: <type password again>
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
68 Adding password for user john
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
69 }}}
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
70
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
71 ''See the man page for `htpasswd` for full documentation.''
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
72
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
73 After you've created the users, you can set their permissions using TracPermissions.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
74
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
75 Now, you'll need to enable authentication against the password file in the Apache configuration:
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
76 {{{
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
77 <Location "/cgi-bin/trac.cgi/login">
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
78 AuthType Basic
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
79 AuthName "Trac"
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
80 AuthUserFile /somewhere/trac.htpasswd
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
81 Require valid-user
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
82 </Location>
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
83 }}}
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
84
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
85 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.
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
86
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
87 ----
93b4dcbafd7b Copy Trac to main branch.
cmlenz
parents:
diff changeset
88 See also: TracGuide, TracInstall, TracFastCgi, TracModPython
Copyright (C) 2012-2017 Edgewall Software