= Tracd = Tracd は軽量なスタンドアロンの Trac Web サーバです。ほとんどのケースでは [wiki:TracCgi CGI] よりセットアップが簡単で、処理速度も速くなります。 == 利点 == #Pros * 依存性が低い: Apache その他 Web サーバをインストールする必要がありません。 * 速い: [wiki:TracModPython mod_python] バージョンと同じくらい速いでしょう。 ([wiki:TracCgi CGI] よりはずっと速い)。 * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード (Trac 自身またはプラグインのコード) を更新したときに、自動的にサーバが再起動します。 == 欠点 == #Cons * 機能が少ない: Tracd に実装されている Web サーバはとてもシンプルで、 Apache HTTPD のように拡張性のある設定ができません。 * ネイティブで HTTPS に対応しない: 代わりに [http://www.rickk.com/sslwrap/ sslwrap] または [http://trac.edgewall.org/wiki/STunnelTracd stunnel -- tracd と stunnel を使うためのチュートリアル] または Apache の mod_proxy を使用します。 == 使用例 == #Usageexamples 単一のプロジェクトをポート 8080 でホストします。 (http://localhost:8080/) {{{ $ tracd -p 8080 /path/to/project }}} 厳密に言うと、この状態では Trac は ''localhost のみ'' ではなく、ネットワーク越しの全員からアクセス可能になっています。 ''--hostname'' オプションを使用すると接続元を制限できます。 {{{ $ tracd --hostname=localhost -p 8080 /path/to/project }}} 複数のプロジェクトをホストする場合はこうです (http://localhost:8080/project1/ と http://localhost:8080/project2/) {{{ $ tracd -p 8080 /path/to/project1 /path/to/project2 }}} Trac は異なるプロジェクト間での URL の一意性を保つために、パスの一番最後の文字列 (訳注: basename) を使用するため、プロジェクト間でパスの一番最後の部分を同じにすることは出来ません。 もし、 `/project1/path/to` と `/project2/path/to` を同時に指定した場合、二つ目のプロジェクトだけしか見えなくなります。 複数のプロジェクトを動かすもう一つの方法は、 `-e` オプションで親ディレクトリを指定し、サブディレクトリに TracEnvironment を配置します。上記の例は以下のように書き換えられます: {{{ $ tracd -p 8080 -e /path/to }}} Windows でサーバを終了するには必ず {{{CTRL-BREAK}}} を使用してください。 -- {{{CTRL-C}}} を使用すると Python のプロセスがバックグラウンドで起動したままになるでしょう。 == Windows サービスとしてインストールする == #InstallingasaWindowsService Windows サービスとしてインストールするには [http://www.google.com/search?q=srvany.exe SRVANY] を取得して起動します: {{{ C:\path\to\instsrv.exe tracd C:\path\to\srvany.exe reg add HKLM\SYSTEM\CurrentControlSet\Services\tracd\Parameters /v Application /d "\"C:\path\to\python.exe\" \"C:\path\to\python\scripts\tracd-script.py\" " net start tracd }}} {{{tracd.exe}}} は使用 '''しない''' で下さい。代わりに {{{python.exe}}} を直接登録し、引数に {{{tracd-script.py}}} を使用して下さい。 {{{tracd.exe}}} を使用してしまうと、 python プロセスが SRVANY の制御下ではなくなってしまうため、 {{{net stop tracd}}} を使用しても python プロセスが残留してしまいます。 Windows の起動時に tracd を自動起動させることもできます: {{{ sc config tracd start= auto }}} 空白には意味があります。そのまま入力して下さい。 == 認証を使用する == #UsingAuthentication tracd は Apache の .htpasswd ファイルを使用できます: .htpasswd ファイルは htpasswd コマンドを使用して作成します: {{{ sudo htpasswd -c /path/to/env/.htpasswd username }}} ユーザを追加する場合は以下の通りです: {{{ sudo htpasswd /path/to/env/.htpasswd username2 }}} tracd の起動オプションにファイルを指定してください: {{{ tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname }}} Tracd は基本認証とダイジェスト認証の両方に対応しています。デフォルトはダイジェスト認証です; 基本認証を使用するためには、以降の例で使用する `--auth` を `--basic-auth` に置き換えて下さい。 (ダイアログに使用する "realm" を指定しなければなりません。 BASICAUTH には カンマ を末尾に指定した空の文字列を指定することができます。) ''基本認証への対応はバージョン 0.9 以降で追加されました。'' 認証を使用するための一般的なコマンドは以下の通りです: {{{ $ tracd -p port --auth=base_project_dir,password_file_path,realm project_path }}} オプションについて: * '''base_project_dir''' はプロジェクトのベースディレクトリ; Note: これはプロジェクト名ではありません。そして Windows の環境においても、大文字と小文字を区別します。 * '''password_file_path''' パスワードファイルのパス * '''realm''' レルム * '''project_path''' プロジェクトのパス 使用例: {{{ $ tracd -p 8080 \ --auth=project1,/path/to/users.htdigest,mycompany.com /path/to/project1 }}} もちろん、ダイジェストファイルは複数のプロジェクト間で共有することが出来ます: {{{ $ tracd -p 8080 \ --auth=project1,/path/to/users.htdigest,mycompany.com \ --auth=project2,/path/to/users.htdigest,mycompany.com \ /path/to/project1 /path/to/project2 }}} ダイジェストファイルを共有するもうひとつの方法は、プロジェクトの名前に "*" を指定することです: {{{ $ tracd -p 8080 \ --auth="*",/path/to/users.htdigest,mycompany.com \ /path/to/project1 /path/to/project2 }}} `-s` パラメータを使用すると、一つの Trac environment をドメインのルートとして提供するようになり、プロジェクト名として `*` を使用せねばなりません。 == htdigest パスワードファイルの設定方法 == #Howtosetupanhtdigestpasswordfile もし、 Apache がインストールされているなら、パスワードファイルを生成するのに、 htdigest コマンドを使用することができます。 'htdigest' とタイプして使用方法を見るか、詳細な使用方法を見るために Apache のマニュアルの [http://httpd.apache.org/docs/2.0/programs/htdigest.html このページ] を読んでください。ユーザを作成するたびに、パスワードを入力するように求められます。パスワードファイルの名前には好きな名前をつけることができますが、 `users.htdigest` というような名前にしておけば、ファイルに何が含まれているかを覚えておけるでしょう。このファイルは /conf フォルダに [TracIni trac.ini] ファイルと一緒に置いておくとよいでしょう。 引数 --auth なしで tracd をスタートできることに注意して下さい。ただし、 ''ログイン'' (英語版では ''Login'') リンクをクリックするとエラーになります。 == Apache 以外の環境でパスワードを生成する == #GeneratingPasswordsWithoutApache もし Apache が使用できない場合でも、簡単な Python スクリプトでパスワードを生