CGI 모드로 Trac 설치하기

To install Trac as a CGI script, you need to make the trac.cgi executable as a CGI by your web server.

Please note that using Trac via CGI is significantly slower than any other deployment method, such as mod_python or FastCGI.

If you're using Apache HTTPD, there are a couple ways to do that:

  1. URL을 trac.cgi 스크립트에 맵핑하기 위해서 ScriptAlias를 사용하십시오.
  2. trac.cgi 파일을 웹서버에서 CGI를 실행하는 디렉토리에 복사하십시오(일반적으로 cgi-bin이라는 이름입니다). 또한 심볼릭 링크를 만들 수도 있습니다. 하지만 그러한 경우에 cgi-bin 디렉토리에 대해서 FollowSymLinks 옵션이 활성화되어 있는지 확인하십시오.

CGI를 friendly URL에 맵핑할 수 있기 때문에 첫번째 옵션이 추천되어집니다.

이제, 아파치 설정파일을 편집하고 다음 내용을 추가하십시오. 파일이름과 위치는 설치환경에 맞게 수정하십시오.

ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi

Note that this directive requires the mod_alias module to be installed and enabled.

If you're using Trac with a single project you need to set its location using the TRAC_ENV environment variable: <Location "/trac">

SetEnv? TRAC_ENV "/path/to/projectenv"

</Location> }}}

Or to use multiple projects you can specify their common parent directory using the TRAC_ENV_PARENT_DIR variable:

<Location "/trac">
  SetEnv TRAC_ENV_PARENT_DIR "/path/to/project/parent/dir"
</Location>

Note that the SetEnv directive requires the mod_env module to be installed and enable.

This will make Trac available at http://yourhost.example.org/trac.

If you are using the Apache suEXEC feature please see http://trac.edgewall.org/wiki/ApacheSuexec.

On some systems, you may need to edit the shebang line in the trac.cgi file to point to your real Python installation path. On a Windows system you may need to configure Windows to know how to execute a .cgi file (Explorer -> Tools -> Folder Options -> File Types -> CGI).

정적 자원 맵핑하기

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 much more efficiently served by the web server directly.

Web servers such as 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.

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:

Alias /trac/chrome/common /usr/share/trac/htdocs
<Directory "/usr/share/trac/htdocs">
  Order allow,deny
  Allow from all
</Directory>

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.

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.

Alternatively, you can set the htdocs_location configuration option in trac.ini:

[trac]
htdocs_location = /trac-htdocs

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:

$ ln -s /usr/share/trac/htdocs /var/www/your_site.com/htdocs/trac-htdocs

인증정보 추가하기

아파치에서 인증정보를 추가하는 가장 쉬운 방법은 패스워드 파일을 생성하는 것입니다. 패스워드 파일을 생성하기 위해서는 htpasswd 프로그램을 사용하십시오.

$ htpasswd -c /somewhere/trac.htpasswd admin
New password: <type password>
Re-type new password: <type password again>
Adding password for user admin

첫번째 사용자를 추가한 후에는, 더 이상 "-c" 옵션이 필요하지 않습니다.:

$ htpasswd /somewhere/trac.htpasswd john
New password: <type password>
Re-type new password: <type password again>
Adding password for user john

htpasswd 프로그램의 전체 문서가 필요하다면 man 페이지를 참고하십시오.

사용자를 추가한 후에, TracPermissions을 사용해서 사용자들의 권한을 설정할 수 있습니다.

이제, 아파치 설정파일에서 패스워드 파일에 대한 인증을 활성화해야 합니다.:

<Location "/trac/login">
  AuthType Basic
  AuthName "Trac"
  AuthUserFile /somewhere/trac.htpasswd
  Require valid-user
</Location>

If you're hosting multiple projects you can use the same password file for all of them:

<LocationMatch "/trac/[^/]+/login">
  AuthType Basic
  AuthName "Trac"
  AuthUserFile /somewhere/trac.htpasswd
  Require valid-user
</LocationMatch>

더 나은 보안을 위해서, SSL을 활성화하던지 아니면 최소한 인증방법으로 "Basic" 대신에 "Digest"를 사용할 것을 추천합니다. 더 많은 정보에 대해서는 Apache HTTPD documentation 문서를 읽으십시오.


참고 : TracGuide, TracInstall, TracFastCgi, TracModPython