wiki:TracCgi

Version 2 (modified by trac, 18 years ago) (diff)

--

CGIとして Trac をインストールする

Trac を CGI スクリプトとしてインストールするために、 Web サーバが trac.cgi を CGI として実行できるようにする必要があります。使用している Web サーバが Apache HTTPD であれば、2つの方法があります:

  1. ScriptAlias を使用し、 trac.cgi スクリプトを URL にマップする。
  2. CGI プログラムが実行可能な、Web サーバ上のディレクトリ (通常は cgi-bin が使用される) に trac.cgi ファイルをコピーする。シンボリックリンクでも代用できますが、その場合 cgi-bin ディレクトリでは FollowSymLinks オプションを有効にして下さい。

CGI を分かりやすい URL にマッピングできるので、 1 番目のオプションを推奨します。

それでは、 Apache の設定ファイルに以下のブロックを追記し、ファイル名とロケーションを変更してください:

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

# Trac needs to know where the database is located
<Location "/trac">
  SetEnv TRAC_ENV "/path/to/projectenv"
</Location>

http://yourhost.example.org/trac のような URL で Trac が使用できるようになります。

Note: 上記の設定で Apache がエラーを出力する場合、 mod_aliasmod_env モジュールが有効な状態になっていることを確認して下さい。

Note: Apache suEXEC 機能を使用している場合、 ApacheSuexec を参照して下さい。

静的なリソースをマッピングする

このままでも Trac はスタイルシートや画像ファイルなどの静的なリソースを扱えますが、 CGI のセットアップとしては妥当な設定とは言えません。 Web サーバ自身がより効率良くに扱うことができるドキュメントまで、 CGI スクリプトとして呼び出してしまうという結果になるからです。

Apache HTTPD のような Web サーバはリソースに対して "Alias" を設定することで仮想の URL を与え、サーバのファイルシステムのレイアウトとは異なる位置にマップすることができます。すでに CGI スクリプトに対して ScriptAlias を定義していますので、ファイルシステム上の静的リソースを含んだコンテンツをマッピングすることで CGI スクリプトの要求を回避します。

Apacheの設定ファイルを再び編集して、 CGI スクリプトの ScriptAlias を追記したブロックより 上に 以下のブロックを追記します。ファイル名とロケーションは適宜変更してください:

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

trac.cgi スクリプトにどんな URL をマッピングしたとしても、 /chrome/common というパスでは静的リソースのロケーションを使用するようになります。

例えば、Trac が /cgi-bin/trac.cgiにマッピングされているとしたら、AliasのURLは cgi-bin/trac.cgi/chrome/common となります。

代わりに、trac.ini のオプションで htdocs_location を設定することができます:

[trac]
htdocs_location = /trac-htdocs

Trac は HTML ページに静的リソースを組み込むときに、この URL を使用するようになります。もちろん、それでも、特定の URL が指定されたときに 例えば、 Web サーバーのドキュメントルートにディレクトリをコピーするなり、シンボリックリンクを張るなりして、Web サーバ経由で、 Trac が htdocs ディレクトリを利用できるようにしておく必要があります。

認証を追加する

Apache で認証を追加する最も単純な方法はパスワードファイルを作ることです。 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 の記述通りユーザに権限を設定することができます。

Apache の設定ファイルの中にパスワードファイル名を記述し、認証を有効にする必要があります:

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

より堅固なセキュリティのために、 SSL を有効にするか、少なくとも "基本認証" の代わりに "ダイジェスト認証" を使用することを推奨します。より詳しい情報については Apache HTTPD documentation を参照して下さい。


See also: TracGuide, TracInstall, TracFastCgi, TracModPython