バージョン 1 から バージョン 2 における更新: TracStandalone
- 更新日時:
- 2010/01/20 13:35:06 (15 年 前)
凡例:
- 変更なし
- 追加
- 削除
- 変更
-
TracStandalone
v1 v2 1 1 = Tracd = 2 2 3 Tracd は軽量なスタンドアロンの Trac web サーバです。ほとんどのケースでは [wiki:TracCgi CGI] よりセットアップが簡単で、処理速度も速くなります。4 5 == 利点 == 6 7 * 依存性が低い: apache その他 web サーバをインストールする必要がありません。3 Tracd は軽量なスタンドアロンの Trac Web サーバです。ほとんどのケースでは [wiki:TracCgi CGI] よりセットアップが簡単で、処理速度も速くなります。 4 5 == 利点 == #Pros 6 7 * 依存性が低い: Apache その他 Web サーバをインストールする必要がありません。 8 8 * 速い: [wiki:TracModPython mod_python] バージョンと同じくらい速いでしょう。 ([wiki:TracCgi CGI] よりはずっと速い)。 9 * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード ( Trac 自身またはプラグインのコード) を更新したときに、自動的にサーバが再起動します。10 11 == 欠点 == 12 13 * 機能が少ない: Tracd に実装されている web サーバはとてもシンプルで、 Apache HTTPD のように拡張性のある設定ができません。9 * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード (Trac 自身またはプラグインのコード) を更新したときに、自動的にサーバが再起動します。 10 11 == 欠点 == #Cons 12 13 * 機能が少ない: Tracd に実装されている Web サーバはとてもシンプルで、 Apache HTTPD のように拡張性のある設定ができません。 14 14 * ネイティブで HTTPS に対応しない: 代わりに [http://www.rickk.com/sslwrap/ sslwrap] または 15 15 [http://trac.edgewall.org/wiki/STunnelTracd stunnel -- tracd と stunnel を使うためのチュートリアル] または Apache の mod_proxy を使用します。 16 16 17 == 使用例 == 18 19 ポート 8080 に単一のプロジェクトを作成します。 (http://localhost:8080/)17 == 使用例 == #Usageexamples 18 19 単一のプロジェクトをポート 8080 でホストします。 (http://localhost:8080/) 20 20 {{{ 21 21 $ tracd -p 8080 /path/to/project 22 22 }}} 23 複数のプロジェクト(http://localhost:8080/project1/ と http://localhost:8080/project2/) 23 厳密に言うと、この状態では Trac は ''localhost のみ'' ではなく、ネットワーク越しの全員からアクセス可能になっています。 ''--hostname'' オプションを使用すると接続元を制限できます。 24 {{{ 25 $ tracd --hostname=localhost -p 8080 /path/to/project 26 }}} 27 複数のプロジェクトをホストする場合はこうです (http://localhost:8080/project1/ と http://localhost:8080/project2/) 24 28 {{{ 25 29 $ tracd -p 8080 /path/to/project1 /path/to/project2 26 30 }}} 27 31 28 Trac は異なるプロジェクト間 の URL の一意性を保つために、パスの一番最後の文字列を使用するため、プロジェクト間でパスの一番最後の部分を同じにすることは出来ません。32 Trac は異なるプロジェクト間での URL の一意性を保つために、パスの一番最後の文字列 (訳注: basename) を使用するため、プロジェクト間でパスの一番最後の部分を同じにすることは出来ません。 29 33 もし、 `/project1/path/to` と `/project2/path/to` を同時に指定した場合、二つ目のプロジェクトだけしか見えなくなります。 30 34 … … 34 38 }}} 35 39 36 == 認証を使用する == 37 38 Tracd は基本認証とダイジェスト認証の両方に対応しています。デフォルトはダイジェスト認証です; 基本認証を使用するためには、以降の例で使用する `--auth` を `--basic-auth` に置き換え、レルムの指定を削除して下さい。 40 Windows でサーバを終了するには必ず {{{CTRL-BREAK}}} を使用してください。 -- {{{CTRL-C}}} を使用すると Python のプロセスがバックグラウンドで起動したままになるでしょう。 41 42 == Windows サービスとしてインストールする == #InstallingasaWindowsService 43 44 Windows サービスとしてインストールするには [http://www.google.com/search?q=srvany.exe SRVANY] を取得して起動します: 45 {{{ 46 C:\path\to\instsrv.exe tracd C:\path\to\srvany.exe 47 reg add HKLM\SYSTEM\CurrentControlSet\Services\tracd\Parameters /v Application /d "\"C:\path\to\python.exe\" \"C:\path\to\python\scripts\tracd-script.py\" <your tracd parameters>" 48 net start tracd 49 }}} 50 51 {{{tracd.exe}}} は使用 '''しない''' で下さい。代わりに {{{python.exe}}} を直接登録し、引数に {{{tracd-script.py}}} を使用して下さい。 {{{tracd.exe}}} を使用してしまうと、 python プロセスが SRVANY の制御下ではなくなってしまうため、 {{{net stop tracd}}} を使用しても python プロセスが残留してしまいます。 52 53 Windows の起動時に tracd を自動起動させることもできます: 54 {{{ 55 sc config tracd start= auto 56 }}} 57 58 空白には意味があります。そのまま入力して下さい。 59 60 == 認証を使用する == #UsingAuthentication 61 62 tracd は Apache の .htpasswd ファイルを使用できます: 63 64 .htpasswd ファイルは htpasswd コマンドを使用して作成します: 65 66 {{{ 67 sudo htpasswd -c /path/to/env/.htpasswd username 68 }}} 69 ユーザを追加する場合は以下の通りです: 70 {{{ 71 sudo htpasswd /path/to/env/.htpasswd username2 72 }}} 73 tracd の起動オプションにファイルを指定してください: 74 {{{ 75 tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname 76 }}} 77 78 79 Tracd は基本認証とダイジェスト認証の両方に対応しています。デフォルトはダイジェスト認証です; 基本認証を使用するためには、以降の例で使用する `--auth` を `--basic-auth` に置き換えて下さい。 (ダイアログに使用する "realm" を指定しなければなりません。 BASICAUTH には カンマ を末尾に指定した空の文字列を指定することができます。) 39 80 40 81 ''基本認証への対応はバージョン 0.9 以降で追加されました。'' 41 82 42 ファイル `/path/to/users.htdigest` に project1 のユーザアカウントをレルム "mycompany.com" として保持している場合、以下に示すコマンドラインで tracd を起動します: 43 {{{ 44 $ tracd -p 8080 --auth project1,/path/to/users.htdigest,mycompany.com /path/to/project1 45 }}} 46 47 '''Note''': `--auth` オプションで指定するプロジェクトの "名前" はそのプロジェクトの TracEnvironment ディレクトリの basename です。 48 83 認証を使用するための一般的なコマンドは以下の通りです: 84 85 {{{ 86 $ tracd -p port --auth=base_project_dir,password_file_path,realm project_path 87 }}} 88 89 オプションについて: 90 91 * '''base_project_dir''' はプロジェクトのベースディレクトリ; Note: これはプロジェクト名ではありません。そして Windows の環境においても、大文字と小文字を区別します。 92 * '''password_file_path''' パスワードファイルのパス 93 * '''realm''' レルム 94 * '''project_path''' プロジェクトのパス 95 96 使用例: 97 98 {{{ 99 $ tracd -p 8080 \ 100 --auth=project1,/path/to/users.htdigest,mycompany.com /path/to/project1 101 }}} 49 102 もちろん、ダイジェストファイルは複数のプロジェクト間で共有することが出来ます: 50 103 {{{ 51 104 $ tracd -p 8080 \ 52 --auth 53 --auth 105 --auth=project1,/path/to/users.htdigest,mycompany.com \ 106 --auth=project2,/path/to/users.htdigest,mycompany.com \ 54 107 /path/to/project1 /path/to/project2 55 108 }}} … … 59 112 {{{ 60 113 $ tracd -p 8080 \ 61 --auth *,/path/to/users.htdigest,mycompany.com \114 --auth="*",/path/to/users.htdigest,mycompany.com \ 62 115 /path/to/project1 /path/to/project2 63 116 }}} 64 65 == htdigest パスワードファイルの設定方法 == 66 67 もし、 Apache がインストールされているなら、パスワードファイルを生成するのに、 htdigest コマンドを使用することができます。 'htdigest' とタイプして使用方法を見るか、詳細な使用方法を見るために Apache のマニュアル [http://httpd.apache.org/docs/2.0/programs/htdigest.html このページ] を読んでください。ユーザを生成するたびに、パスワードを入力するように求められます。パスワードファイルの名前には好きな名前をつけることができますが、 `users.htdigest` というような名前にしておけば、ファイルに何が含まれているかを覚えておけるでしょう。指示通り、それを <projectname>/conf フォルダに [TracIni trac.ini] ファイルと一緒において下さい。 68 69 引数 --auth なしで tracd をスタートできることに注意して下さい。ただし、 ''ログイン'' リンクをクリックするとエラーになるでしょう。 70 71 == Apache 以外の環境でパスワードを生成する == 117 `-s` パラメータを使用すると、一つの Trac environment をドメインのルートとして提供するようになり、プロジェクト名として `*` を使用せねばなりません。 118 119 == htdigest パスワードファイルの設定方法 == #Howtosetupanhtdigestpasswordfile 120 121 もし、 Apache がインストールされているなら、パスワードファイルを生成するのに、 htdigest コマンドを使用することができます。 'htdigest' とタイプして使用方法を見るか、詳細な使用方法を見るために Apache のマニュアルの [http://httpd.apache.org/docs/2.0/programs/htdigest.html このページ] を読んでください。ユーザを作成するたびに、パスワードを入力するように求められます。パスワードファイルの名前には好きな名前をつけることができますが、 `users.htdigest` というような名前にしておけば、ファイルに何が含まれているかを覚えておけるでしょう。このファイルは <projectname>/conf フォルダに [TracIni trac.ini] ファイルと一緒に置いておくとよいでしょう。 122 123 引数 --auth なしで tracd をスタートできることに注意して下さい。ただし、 ''ログイン'' (英語版では ''Login'') リンクをクリックするとエラーになります。 124 125 == Apache 以外の環境でパスワードを生成する == #GeneratingPasswordsWithoutApache 72 126 73 127 もし Apache が使用できない場合でも、簡単な Python スクリプトでパスワードを生成できます: 74 128 75 129 {{{ 130 #!python 76 131 from optparse import OptionParser 77 import md5 132 # The md5 module is deprecated in Python 2.5 133 try: 134 from hashlib import md5 135 except ImportError: 136 from md5 import md5 137 realm = 'trac' 78 138 79 139 # build the options … … 84 144 parser.add_option("-p", "--password",action="store", dest="password", type = "string", 85 145 help="the password to use") 146 parser.add_option("-r", "--realm",action="store", dest="realm", type = "string", 147 help="the realm in which to create the digest") 86 148 (options, args) = parser.parse_args() 87 149 … … 89 151 if (options.username is None) or (options.password is None): 90 152 parser.error("You must supply both the username and password") 153 if (options.realm is not None): 154 realm = options.realm 91 155 92 156 # Generate the string to enter into the htdigest file 93 realm = 'trac' 94 kd = lambda x: md5.md5(':'.join(x)).hexdigest() 157 kd = lambda x: md5(':'.join(x)).hexdigest() 95 158 print ':'.join((options.username, realm, kd([options.username, realm, options.password]))) 96 159 }}} 97 160 98 Note: もし tracd を --basic-auth ではなくて、 --auth オプションを使用して起動するときに、上記のスクリプトを使わないといけないとしたら --auth の値に 'trac' を( シングルクォートなしで ) 指定し、レルムを設定しなければなりません。(上記スクリプトを trac-digest.py として保存したとします)161 Note: もし tracd を --basic-auth ではなくて、 --auth オプションを使用して起動するときに、上記のスクリプトを使わないといけないとしたら --auth の値に 'trac' を(シングルクォートなしで) 指定し、レルムを設定しなければなりません。(上記スクリプトを trac-digest.py として保存したとします) 99 162 100 163 {{{ 101 164 python trac-digest.py -u username -p password >> c:\digest.txt 102 python tracd --port 8000 --auth proj_name,c:\digest.txt,trac c:\path\to\proj_name 103 }}} 104 105 == Tips == 106 107 === 静的なリソースを扱う === 165 tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name 166 }}} 167 168 Note: --basic-auth を使用したければ、 .htpasswd ファイルを作成するのに Apache サーバの htpasswd ツールを使用する必要があります。 他の部分についてはダイジェスト認証を行う場合とほとんど同じ方法です。しかしレルムには必ず empty 値 (すなわち、パス後のカンマのみ) を指定するようにしてください。 Windows で使用する場合は必ず -m オプションを使用してください。 (*nix ではテストしなかったので、その場合は不明です) Apache がない環境では、 [http://trac.edgewall.org/browser/tags/trac-0.11b2/contrib/htpasswd.py htpasswd.py] を使うとよいでしょう。 (このスクリプトは `crypt` か `fcrypt` モジュールが必要です; ソースのコメントに詳細が書いてあります。) 169 170 md5sum ユーティリティを使用するとダイジェストパスワードを作成することができます: 171 {{{ 172 $ printf "${user}:trac:${password}" | md5sum - >>user.htdigest 173 }}} 174 'to-file' は手で編集が必要です。行末の " -" を削除し、行頭に "${user}:trac:" を追加してください。 175 176 == Tips == #Tips 177 178 === 静的なリソースを扱う === #Servingstaticcontent 108 179 109 180 もし、 `tracd` が単一のプロジェクトのみを扱う Web サーバだとしたら、 … … 115 186 116 187 例: ファイル名が `$TRAC_ENV/htdocs/software-0.1.tar.gz` だったとき、 117 対応する URL は `/<project_name>/chrome/site/software-0.1.tar.gz` とな るでしょう。118 そして、wiki には、相対リンクシンタックスを使用して、119 `[/<project_name>/chrome/site/software-0.1.tar.gz]` と書くことができます。 188 対応する URL は `/<project_name>/chrome/site/software-0.1.tar.gz` となります。 189 Wiki には、相対リンクシンタックスを使用して、 190 `[/<project_name>/chrome/site/software-0.1.tar.gz]` と書くことができます。 (訳注: `[/chrome/site/software-0.1.tar.gz]` が正しい) 120 191 121 192 Trac の開発バージョンでは新しく `htdocs:` に対応します。 TracLinks は … … 123 194 `htdocs:software-0.1.tar.gz` と書くことができます。 124 195 196 === Apache の書き換え規則を使用する === #Usingapacherewriterules 197 Apache のビハインドで tracd を使用すると、いくつかの状況で不正なホストまたはプロトコルに URL をリダイレクトされる問題が発生するかもしれません。この場合 (この場合だけ) `[trac] use_base_url_for_redirect` を `true` に設定することができます。これによって Trac がやむを得ず `[trac] base_url` の値を使用するためリダイレクトを行います。 198 199 === 検索パスとは別のベースパス (/) === #Servingadifferentbasepaththan 200 Tracd は、プロジェクト毎に異なるベース URL 、および /<project> をサポートします。コマンドは以下の通りです。 201 {{{ 202 $ tracd --base-path=/some/path 203 }}} 204 125 205 ---- 126 See also: TracInstall, TracCgi, TracModPython, TracGuide 127 128 ---- 129 '''Translation:''' 130 * [https://opensvn.csie.org/traccgi/trac_rus/wiki/StandAloneTracForTeapot Russian] (перевод на Русский) 206 See also: TracInstall, TracCgi, TracModPython, TracGuide, [http://trac.edgewall.org/wiki/TracOnWindowsStandalone?version=13#RunningTracdasservice tracd.exe を Windows のサービスとして起動する]