36 | | == 認証を使用する == |
37 | | |
38 | | Tracd は基本認証とダイジェスト認証の両方に対応しています。デフォルトはダイジェスト認証です; 基本認証を使用するためには、以降の例で使用する `--auth` を `--basic-auth` に置き換え、レルムの指定を削除して下さい。 |
39 | | |
40 | | ''基本認証への対応はバージョン 0.9 以降で追加されました。'' |
41 | | |
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 | | |
49 | | もちろん、ダイジェストファイルは複数のプロジェクト間で共有することが出来ます: |
| 41 | Windows でサーバを終了するには必ず {{{CTRL-BREAK}}} を使用してください。 -- {{{CTRL-C}}} を使用すると Python のプロセスがバックグラウンドで起動したままになるでしょう。 |
| 42 | |
| 43 | == Windows サービスとしてインストールする == #InstallingasaWindowsService |
| 44 | |
| 45 | === オプション 1 === #Option1 |
| 46 | Windows のサービスとしてインストールするには、 [http://www.google.com/search?q=srvany.exe SRVANY] ユーティリティを入手し起動します: |
| 47 | {{{ |
| 48 | C:\path\to\instsrv.exe tracd C:\path\to\srvany.exe |
| 49 | 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>" |
| 50 | net start tracd |
| 51 | }}} |
| 52 | |
| 53 | {{{tracd.exe}}} は使用 '''しない''' で下さい。代わりに {{{python.exe}}} を直接登録し、引数に {{{tracd-script.py}}} を使用して下さい。 {{{tracd.exe}}} を使用してしまうと、 python プロセスが SRVANY の制御下ではなくなってしまうため、 {{{net stop tracd}}} を使用しても python プロセスが残留してしまいます。 |
| 54 | |
| 55 | Windows の起動時に tracd を自動起動させることもできます: |
| 56 | {{{ |
| 57 | sc config tracd start= auto |
| 58 | }}} |
| 59 | |
| 60 | 空白には意味があります。そのまま入力して下さい。 |
| 61 | |
| 62 | {{{#!div |
| 63 | 一度、Windows サービスがインストールされると、上記の `reg add` コマンドを使用するよりも、レジストリエディタを起動するほうが簡単かもしれません。指定のパスへの移動:[[BR]] |
| 64 | `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tracd\Parameters` |
| 65 | |
| 66 | 3 つの文字列のパラメータが提供されています: |
| 67 | ||!AppDirectory ||C:\Python26\ || |
| 68 | ||Application ||python.exe || |
| 69 | ||!AppParameters ||scripts\tracd-script.py -p 8080 ... || |
| 70 | |
| 71 | Note: もし !AppDirectory が上記のように設定されているならば、実行ファイル ''と'' スクリプトのパス、パラメータの値は、設定したフォルダへの相対パスになります。ここ一点に絞って言うと、これにより Python をアップデートするときに変更箇所が限定されるため少しだけ楽になります。 |
| 72 | (ドキュメントでは、 /full/path/to/htpasswd とフルパス指定するよう書いてあるかもしれませんが、これは、 .htpasswd ファイルについても同様のことが言えます;このファイルを Python ディレクトリ配下に配置したいと思わないかもしれません。) |
| 73 | }}} |
| 74 | |
| 75 | Windows 7 ユーザは、 srvany.exe は使用できないかもしれません。代わりに [http://www.google.com/search?q=winserv.exe WINSERV] ユーティリティを使用して、起動してください: |
| 76 | {{{ |
| 77 | "C:\path\to\winserv.exe" install tracd -displayname "tracd" -start auto "C:\path\to\python.exe" c:\path\to\python\scripts\tracd-script.py <your tracd parameters>" |
| 78 | |
| 79 | net start tracd |
| 80 | }}} |
| 81 | |
| 82 | === オプション 2 === #Option2 |
| 83 | |
| 84 | [http://trac-hacks.org/ Trac Hacks] より [http://trac-hacks.org/wiki/WindowsServiceScript WindowsServiceScript] を入手して下さい。 Trac のサービスを インストール、削除、開始、停止などできます。 |
| 85 | |
| 86 | == 認証を使用する == #UsingAuthentication |
| 87 | |
| 88 | Tracd は基本認証とダイジェスト認証の両方に対応しています。ダイジェスト認証の方がより安全です。以降の例ではダイジェスト認証を使用しています。; 基本認証を使用するためには、下記のコマンドライン入力時に `--auth` を `--basic-auth` に置き換えて下さい。 |
| 89 | |
| 90 | 認証を使用する際の一般的なフォーマット: |
| 91 | {{{ |
| 92 | $ tracd -p port --auth="base_project_dir,password_file_path,realm" project_path |
| 93 | }}} |
| 94 | オプションについて: |
| 95 | * '''base_project_dir''': 下記の通りプロジェクトのベースのディレクトリを特定する: |
| 96 | * 複数のプロジェクトを立てているとき: `project_path` への ''相対パス'' |
| 97 | * 1 つのみプロジェクトを立てているとき (`-s` オプション使用): プロジェクトのディレクトリの名前 |
| 98 | 絶対パスを使用しないで下さい。 ''Note:'' このパラメータは、 Windows の環境であっても大文字小文字を区別します。 |
| 99 | * '''password_file_path''': パスワードファイルへのパス |
| 100 | * '''realm''': realm の名前 ( なんでも指定できます ) |
| 101 | * '''project_path''': プロジェクトへのパス |
| 102 | |
| 103 | * **`--auth`** 上記の例では、ダイジェスト認証を使用しています。基本認証を使用する際は `--auth` を `--basic-auth` に置き換えてください。基本認証は "realm" を必要としませんが、コマンドとしては、最後の引用句に空のレルム名前が直接続くことになるので、2つ目のコンマは必要になります。 |
| 104 | |
| 105 | 例: |
| 106 | |
52 | | --auth project1,/path/to/users.htdigest,mycompany.com \ |
53 | | --auth project2,/path/to/users.htdigest,mycompany.com \ |
| 109 | --auth="project1,/path/to/passwordfile,mycompany.com" /path/to/project1 |
| 110 | }}} |
| 111 | |
| 112 | もちろん、パスワードファイルは 1 つ以上のプロジェクトで共有することができます。 |
| 113 | {{{ |
| 114 | $ tracd -p 8080 \ |
| 115 | --auth="project1,/path/to/passwordfile,mycompany.com" \ |
| 116 | --auth="project2,/path/to/passwordfile,mycompany.com" \ |
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 以外の環境でパスワードを生成する == |
72 | | |
73 | | もし Apache が使用できない場合でも、簡単な Python スクリプトでパスワードを生成できます: |
74 | | |
75 | | {{{ |
| 127 | === 基本認証: htpasswd パスワードを使用する === #BaseicAuthorizationUsingahtpasswdpasswordfile |
| 128 | このセクションでは、 `tracd` と Apache の .htpasswd ファイルの使用方法について記述します。 |
| 129 | |
| 130 | Apache の `htpasswd` コマンドを使用して、 .htpasswd ファイルを作成します。 ( Apache を使用せずにこれらのファイルを作成する方法については [#GeneratingPasswordsWithoutApache 下記] を参照して下さい): |
| 131 | {{{ |
| 132 | $ sudo htpasswd -c /path/to/env/.htpasswd username |
| 133 | }}} |
| 134 | そしてユーザを追加します。 |
| 135 | {{{ |
| 136 | $ sudo htpasswd /path/to/env/.htpasswd username2 |
| 137 | }}} |
| 138 | |
| 139 | そして、 `tracd` をこのように起動します: |
| 140 | {{{ |
| 141 | $ tracd -p 8080 --basic-auth="projectdirname,/fullpath/environmentname/.htpasswd,realmname" /fullpath/environmentname |
| 142 | }}} |
| 143 | |
| 144 | 例: |
| 145 | {{{ |
| 146 | $ tracd -p 8080 --basic-auth="testenv,/srv/tracenv/testenv/.htpasswd,My Test Env" /srv/tracenv/testenv |
| 147 | }}} |
| 148 | ''Note:'' いくつかのプラットフォーム (OpenBSD) では、htpasswd に "-m" をパラメータで渡す必要があるかもしれません。 |
| 149 | |
| 150 | === ダイジェスト認証: htdigest パスワードファイルの設定方法 === #DigestauthentitionUsingahtdigestpasswordfile |
| 151 | |
| 152 | もし、 Apache がインストールされているなら、パスワードファイルを生成するのに、 htdigest コマンドを使用することができます。 'htdigest' とタイプして使用方法を見るか、詳細な使用方法を見るために Apache のマニュアルの [http://httpd.apache.org/docs/2.0/programs/htdigest.html このページ] を読んでください。ユーザを作成するたびに、パスワードを入力するように求められます。パスワードファイルの名前には好きな名前をつけることができますが、 `users.htdigest` というような名前にしておけば、ファイルに何が含まれているかを覚えておけるでしょう。このファイルは <projectname>/conf フォルダに [TracIni trac.ini] ファイルと一緒に置いておくとよいでしょう。 |
| 153 | |
| 154 | 引数 --auth なしで tracd をスタートできることに注意して下さい。ただし、 ''ログイン'' (英語版では ''Login'') リンクをクリックするとエラーになります。 |
| 155 | |
| 156 | === Apache 以外の環境でパスワードを生成する === #GeneratingPasswordsWithoutApache |
| 157 | |
| 158 | 基本認証は [http://www.4webhelp.net/us/password.php online HTTP Password generator] を用いて完成させることができます。生成した password-hash をシステムの .htpasswd ファイルにコピーします。 |
| 159 | |
| 160 | 簡単な Python スクリプトで '''digest''' 認証のパスワードファイルを生成できます: |
| 161 | |
| 162 | {{{ |
| 163 | #!python |
98 | | Note: もし tracd を --basic-auth ではなくて、 --auth オプションを使用して起動するときに、上記のスクリプトを使わないといけないとしたら --auth の値に 'trac' を( シングルクォートなしで ) 指定し、レルムを設定しなければなりません。( 上記スクリプトを trac-digest.py として保存したとします) |
99 | | |
100 | | {{{ |
101 | | 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 | | === 静的なリソースを扱う === |
| 194 | Note: 上記のスクリプトを使用する場合、 --auth の引数に '''`trac`''' を指定し、レルムを設定しなければなりません。使用例 (上記スクリプトを trac-digest.py として保存したとします): |
| 195 | |
| 196 | {{{ |
| 197 | $ python trac-digest.py -u username -p password >> c:\digest.txt |
| 198 | $ tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name |
| 199 | }}} |
| 200 | |
| 201 | ==== `md5sum` を使用する |
| 202 | `md5sum` ユーティリティを使用するとダイジェスト認証のパスワードファイルを作成することができます: |
| 203 | {{{ |
| 204 | $ printf "${user}:trac:${password}" | md5sum - >>user.htdigest |
| 205 | }}} |
| 206 | 'to-file' は手で編集が必要です。行末の " -" を削除し、行頭に "${user}:trac:" を追加してください。 |
| 207 | |
| 208 | == リファレンス == #Reference |
| 209 | |
| 210 | これはリマインダとして、オンラインヘルプです。 (`tracd --help`): |
| 211 | {{{ |
| 212 | Usage: tracd [options] [projenv] ... |
| 213 | |
| 214 | Options: |
| 215 | --version show program's version number and exit |
| 216 | -h, --help show this help message and exit |
| 217 | -a DIGESTAUTH, --auth=DIGESTAUTH |
| 218 | [projectdir],[htdigest_file],[realm] |
| 219 | --basic-auth=BASICAUTH |
| 220 | [projectdir],[htpasswd_file],[realm] |
| 221 | -p PORT, --port=PORT the port number to bind to |
| 222 | -b HOSTNAME, --hostname=HOSTNAME |
| 223 | the host name or IP address to bind to |
| 224 | --protocol=PROTOCOL http|scgi|ajp |
| 225 | -q, --unquote unquote PATH_INFO (may be needed when using ajp) |
| 226 | --http10 use HTTP/1.0 protocol version (default) |
| 227 | --http11 use HTTP/1.1 protocol version instead of HTTP/1.0 |
| 228 | -e PARENTDIR, --env-parent-dir=PARENTDIR |
| 229 | parent directory of the project environments |
| 230 | --base-path=BASE_PATH |
| 231 | the initial portion of the request URL's "path" |
| 232 | -r, --auto-reload restart automatically when sources are modified |
| 233 | -s, --single-env only serve a single project without the project list |
| 234 | }}} |
| 235 | |
| 236 | == Tips == #Tips |
| 237 | |
| 238 | === 静的なリソースを扱う === #Servingstaticcontent |
117 | | 対応する URL は `/<project_name>/chrome/site/software-0.1.tar.gz` となるでしょう。 |
118 | | そして、wiki には、相対リンクシンタックスを使用して、 |
119 | | `[/<project_name>/chrome/site/software-0.1.tar.gz]` と書くことができます。 |
120 | | |
121 | | Trac の開発バージョンでは新しく `htdocs:` に対応します。 TracLinks は |
122 | | 上記のようなシンタックスになります。これによって、上記の例のリンクはただ単に |
123 | | `htdocs:software-0.1.tar.gz` と書くことができます。 |
| 248 | 対応する URL は `/<project_name>/chrome/site/software-0.1.tar.gz` となります。 |
| 249 | 代わりに `htdocs:software-0.1.tar.gz` (TracLinks のシンタックス) や `[/<project_name>/chrome/site/software-0.1.tar.gz]` (相対リンクのシンタックス) で記述することができます。 |
| 250 | |
| 251 | ''TracLinks における `htdocs:` のサポートは Trac のバージョン 0.10 で追加されました。'' |
| 252 | |
| 253 | === tracd をプロキシの背後で使用する #Usingtracdbehindaproxy |
| 254 | |
| 255 | ある状況において tracd を Apache もしくは他のウェブサーバの背後で使用するときについてです。 |
| 256 | |
| 257 | この状況において、間違ったホストやプロトコルにリダイレクトされてしまったなどの経験があるかもしれません。この場合 (そして、この場合に限って) `[trac] use_base_url_for_redirect` を `true` に設定することによって、リダイレクトを行なう際 Trac に `[trac] base_url` の値を強制的に使用させることができます。 |
| 258 | |
| 259 | もし、`tracd` に接続するために AJP プロトコルを使用しているならば (flup をインストールしているならば可能です) 、ダブルクオテーションの問題にぶつかったことがあるかもしれません。その際は、 `--unquote` パラメータを追加することを考えてください。 |
| 260 | |
| 261 | See also [http://trac.edgewall.org/wiki/TracOnWindowsIisAjp TracOnWindowsIisAjp], [http://trac.edgewall.org/wiki/TracNginxRecipe TracNginxRecipe]. |
| 262 | |
| 263 | === / (root) とは異なるベースパスで起動する === #Servingadifferentbasepaththan |
| 264 | Tracd は /<project> とは異なるベース URL でプロジェクトを提供することをサポートします。変更するためのパラメータは以下の通りです |
| 265 | {{{ |
| 266 | $ tracd --base-path=/some/path |
| 267 | }}} |