CGI として Trac をインストールする
Trac を CGI 経由で使用するのは、他の方法である mod_python, FastCGI や Windows 上の IIS/AJP よりも極めて遅いことに注意して下さい。
CGI スクリプトは、 Web サーバがリクエストを受信した時にアプリケーションを起動するためのエントリポイントになります。下記のスクリプトで trac.cgi を生成できます:
trac-admin /path/to/env deploy /path/to/www/trac
指定したパス内の cgi-bin フォルダに trac.cgi が作成されます。trac.cgi が Web サーバで実行可能か確認してください。このコマンドは指定したパスの htdocs ディレクトリに 静的リソース ファイルもコピーします。
Apache web-server 設定
Apache HTTPD を使用している場合、 Trac で CGI を動作させる設定方法は 2 通りあります:
- ScriptAlias を使用し、 trac.cgi スクリプトを URL にマップする。(推奨)
- CGI プログラムが実行可能な、 Web サーバ上のディレクトリ (通常は cgi-bin が使用される) に trac.cgi ファイルをコピーする。シンボリックリンクでも代用できますが、その場合 cgi-bin ディレクトリでは FollowSymLinks オプションを有効にして下さい
http://yourhost.example.org/trac で Trac を実行するには、インストールしたマシンのApache の設定ファイルに、 trac.cgi パスに変更した上で、ScriptAlias ディレクティブを追加します。
ScriptAlias /trac /path/to/www/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>
Note: SetEnv ディレクティブを使用するには mod_env モジュールをインストールし有効にしておく必要があります。 trac.cgi に TRAC_ENV を設定することで代用できます。 "try" と "from trac.web ..." の間に以下のコードを加えてください:
import os os.environ['TRAC_ENV'] = "/path/to/projectenv"
もしくは、 TRAC_ENV_PARENT_DIR を設定します:
import os os.environ['TRAC_ENV_PARENT_DIR'] = "/path/to/project/parent/dir"
Apache suEXEC 機能を使用している場合、 ApacheSuexec を参照して下さい。
システムによっては、trac.cgi ファイルの shebang 行を編集して、実際に Python がインストールされているパスを指すように修正する必要がある かもしれません。 Windows システム上では、 Windowsが .cgi ファイルを実行できるように設定する必要があるでしょう。 (エクスプローラ -> ツール -> フォルダオプション -> ファイルの種類 -> CGI を Python と関連付ける)
WSGI を使用する
CGI 内で WSGI ハンドラー を実行することができます。アプリケーション機能を作成すること もできますし、用意されている trac.wsgi のアプリケーションを使用することもできます。
静的なリソースをマッピングする
TracInstall#MappingStaticResources を参照してください。
認証を追加する
TracInstall#ConfiguringAuthentication を参照してください。
See also: TracGuide, TracInstall, TracModWSGI, TracFastCgi, TracModPython