Version 1 (modified by 18 years ago) ( diff ) | ,
---|
CGI として Trac をインストールする
Trac を CGI スクリプトとしてインストールするために、 Web サーバが trac.cgi
を CGI として実行できるようにする必要があります。
Trac を CGI 経由で使用するのは、他のメソッド mod_python や FastCGI よりも極めて遅いということに注意して下さい。
Apache HTTPD を使用している場合、設定方法は 2 通りあります:
ScriptAlias
を使用し、trac.cgi
スクリプトを URL にマップする。- CGI プログラムが実行可能な、Web サーバ上のディレクトリ (通常は
cgi-bin
が使用される) にtrac.cgi
ファイルをコピーする。シンボリックリンクでも代用できますが、その場合cgi-bin
ディレクトリではFollowSymLinks
オプションを有効にして下さい。
CGI を分かりやすい URL にマッピングできるので、 1 番目のオプションを推奨します。
それでは、 Apache の設定ファイルに以下のブロックを追記し、ファイル名とロケーションを変更してください:
ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi
このディレクティブを使用するには
mod_alias
モジュールをインストールし、有効にしておく必要があります。
Trac のプロジェクトが 1 つの場合、 TRAC_ENV
環境変数を使用してプロジェクトへのパスを指定する必要があります:
<Location "/trac"> SetEnv TRAC_ENV "/path/to/projectenv" </Location>
もしくは、複数のプロジェクトを扱うために、それらの親ディレクトリを TRAC_ENV_PARENT_DIR
を使用して設定することができます。
<Location "/trac"> SetEnv TRAC_ENV_PARENT_DIR "/path/to/project/parent/dir" </Location>
SetEnv
ディレクティブを使用するにはmod_env
モジュールをインストールし有効にしておく必要があります。
http://yourhost.example.org/trac
のような URL で Trac が使用できるようになります。
Apache suEXEC 機能を使用している場合、 ApacheSuexec を参照して下さい。
システムによっては、trac.cgi
ファイルの shebang 行を編集して、実際に Python がインストールされているパスを指すように修正する必要がある かもしれません。 Windows システム上では、 Windowsが .cgi ファイルを実行できるように設定する必要があるでしょう。 (エクスプローラ -> ツール -> フォルダオプション -> ファイルの種類 -> CGI を Python と関連付ける)
静的なリソースをマッピングする
このままでも 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
ディレクトリを利用できるようにしておく必要があります:
$ ln -s /usr/share/trac/htdocs /var/www/your_site.com/htdocs/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 "/trac/login"> AuthType Basic AuthName "Trac" AuthUserFile /somewhere/trac.htpasswd Require valid-user </Location>
複数のプロジェクトを持っている場合でも、パスワードファイルはプロジェクトで共通なものを使用することができます:
<LocationMatch "/trac/[^/]+/login"> AuthType Basic AuthName "Trac" AuthUserFile /somewhere/trac.htpasswd Require valid-user </LocationMatch>
より堅固なセキュリティのために、 SSL を有効にするか、少なくとも "基本認証" の代わりに "ダイジェスト認証" を使用することを推奨します。より詳しい情報については Apache HTTPD documentation を参照して下さい。
See also: TracGuide, TracInstall, TracFastCgi, TracModPython