Changes between Version 2 and Version 3 of TracStandalone
- Timestamp:
- Jun 17, 2013, 1:35:49 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TracStandalone
v2 v3 1 ** Note: このページのドキュメントは Trac 1.0 に対応しています。それ以前のバージョンについては [[0.12/TracStandalone]] を参照してください。 ** 1 2 = Tracd = #Tracd 2 3 … … 6 7 == 利点 == #Pros 7 8 8 * 依存性が低い: apache その他 web サーバをインストールする必要がありません 。9 * 速い: [wiki:TracModPython mod_python] バージョンと同じくらい速いでしょう。 ([wiki:TracCgi CGI] よりはずっと速い)。そして、 バージョン 0.12 以降では、デフォルトで HTTP のバージョン 1.1 が使えるようになりました 。10 * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード ( Trac 自身またはプラグインのコード ) を更新したときに、自動的にサーバが再起動します 。9 * 依存性が低い: apache その他 web サーバをインストールする必要がありません 10 * 速い: [wiki:TracModPython mod_python] バージョンと同じくらい速いでしょう。 ([wiki:TracCgi CGI] よりはずっと速い)。そして、 バージョン 0.12 以降では、デフォルトで HTTP のバージョン 1.1 が使えるようになりました 11 * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード ( Trac 自身またはプラグインのコード ) を更新したときに、自動的にサーバが再起動します 11 12 12 13 == 欠点 == #Cons 13 14 14 * 機能が少ない: Tracd に実装されている web サーバはとてもシンプルで、 Apache httpd のように拡張性のある設定ができません 。15 * 機能が少ない: Tracd に実装されている web サーバはとてもシンプルで、 Apache httpd のように拡張性のある設定ができません 15 16 * ネイティブで HTTPS に対応しない: 代わりに [http://www.rickk.com/sslwrap/ sslwrap] または 16 [ http://trac.edgewall.org/wiki/STunnelTracd stunnel -- tracd と stunnel を使うためのチュートリアル] または Apache の mod_proxy を使用します。17 [trac:STunnelTracd stunnel -- tracd と stunnel を使うためのチュートリアル] または Apache の mod_proxy を使用します 17 18 18 19 == 使用例 == #Usageexamples … … 70 71 71 72 Note: もし !AppDirectory が上記のように設定されているならば、実行ファイル ''と'' スクリプトのパス、パラメータの値は、設定したフォルダへの相対パスになります。ここ一点に絞って言うと、これにより Python をアップデートするときに変更箇所が限定されるため少しだけ楽になります。 72 (ドキュメントでは、 /full/path/to/htpasswd とフルパス指定するよう書いてあるかもしれませんが、これは、 .htpasswd ファイルについても同様のことが言えます ;このファイルを Python ディレクトリ配下に配置したいと思わないかもしれません。)73 (ドキュメントでは、 /full/path/to/htpasswd とフルパス指定するよう書いてあるかもしれませんが、これは、 .htpasswd ファイルについても同様のことが言えます。このファイルを Python ディレクトリ配下に配置したいと思わないかもしれません。) 73 74 }}} 74 75 … … 84 85 [http://trac-hacks.org/ Trac Hacks] より [http://trac-hacks.org/wiki/WindowsServiceScript WindowsServiceScript] を入手して下さい。 Trac のサービスを インストール、削除、開始、停止などできます。 85 86 87 === オプション 3 === #Option3 88 89 cygwin の cygrunsrv.exe を使用することもできます: 90 {{{ 91 $ cygrunsrv --install tracd --path /cygdrive/c/Python27/Scripts/tracd.exe --args '--port 8000 --env-parent-dir E:\IssueTrackers\Trac\Projects' 92 $ net start tracd 93 }}} 94 86 95 == 認証を使用する == #UsingAuthentication 87 96 88 Tracd は基本認証とダイジェスト認証の両方に対応しています。ダイジェスト認証の方がより安全です。以降の例ではダイジェスト認証を使用しています。 ;基本認証を使用するためには、下記のコマンドライン入力時に `--auth` を `--basic-auth` に置き換えて下さい。97 Tracd は基本認証とダイジェスト認証の両方に対応しています。ダイジェスト認証の方がより安全です。以降の例ではダイジェスト認証を使用しています。基本認証を使用するためには、下記のコマンドライン入力時に `--auth` を `--basic-auth` に置き換えて下さい。 89 98 90 99 認証を使用する際の一般的なフォーマット: … … 101 110 * '''project_path''': プロジェクトへのパス 102 111 103 * **`--auth`** 上記の例では、ダイジェスト認証を使用しています。基本認証を使用する際は `--auth` を `--basic-auth` に置き換えてください。基本認証は "realm" を必要としませんが、コマンドとしては、最後の引用句に空のレルム名前が直接続くことになるので、2つ目のコンマは必要になります 。112 * **`--auth`** 上記の例では、ダイジェスト認証を使用しています。基本認証を使用する際は `--auth` を `--basic-auth` に置き換えてください。基本認証は "realm" を必要としませんが、コマンドとしては、最後の引用句に空のレルム名前が直接続くことになるので、2つ目のコンマは必要になります 104 113 105 114 例: … … 128 137 このセクションでは、 `tracd` と Apache の .htpasswd ファイルの使用方法について記述します。 129 138 139 Note: htpasswd のフォーマットを解読するために、(少なくとも Python 2.6 は) fcrypt パッケージをインストールする必要があります。 140 Trac のソースコードでは、まず `import crypt` を試みますが、 141 Python 2.6 にそのようなパッケージはありません。 `SHA-1` パスワードのみ、このモジュールなしで対応します。( Trac 1.0 から) 142 130 143 Apache の `htpasswd` コマンドを使用して、 .htpasswd ファイルを作成します。 ( Apache を使用せずにこれらのファイルを作成する方法については [#GeneratingPasswordsWithoutApache 下記] を参照して下さい): 131 144 {{{ 132 145 $ sudo htpasswd -c /path/to/env/.htpasswd username 133 146 }}} 134 そしてユーザを追加します 。147 そしてユーザを追加します: 135 148 {{{ 136 149 $ sudo htpasswd /path/to/env/.htpasswd username2 … … 152 165 もし、 Apache がインストールされているなら、パスワードファイルを生成するのに、 htdigest コマンドを使用することができます。 'htdigest' とタイプして使用方法を見るか、詳細な使用方法を見るために Apache のマニュアルの [http://httpd.apache.org/docs/2.0/programs/htdigest.html このページ] を読んでください。ユーザを作成するたびに、パスワードを入力するように求められます。パスワードファイルの名前には好きな名前をつけることができますが、 `users.htdigest` というような名前にしておけば、ファイルに何が含まれているかを覚えておけるでしょう。このファイルは <projectname>/conf フォルダに [TracIni trac.ini] ファイルと一緒に置いておくとよいでしょう。 153 166 154 引数 --authなしで tracd をスタートできることに注意して下さい。ただし、 ''ログイン'' (英語版では ''Login'') リンクをクリックするとエラーになります。167 引数 `--auth` なしで tracd をスタートできることに注意して下さい。ただし、 ''ログイン'' (英語版では ''Login'') リンクをクリックするとエラーになります。 155 168 156 169 === Apache 以外の環境でパスワードを生成する === #GeneratingPasswordsWithoutApache 157 170 158 基本認証は [http:// www.4webhelp.net/us/password.php online HTTP Password generator] を用いて完成させることができます。生成した password-hash をシステムの .htpasswd ファイルにコピーします。171 基本認証は [http://aspirine.org/htpasswd_en.html online HTTP Password generator] を用いて完成させることができます。これは `SHA-1` もサポートしています。生成した password-hash をシステムの .htpasswd ファイルにコピーします。Windows 版の Python は htpasswd のデフォルトのハッシュタイプである "crypt" モジュールに対応していないので注意してください。MD5 パスワードハッシュには対応しているため、MD5 を使用するとよいでしょう。 159 172 160 173 簡単な Python スクリプトで '''digest''' 認証のパスワードファイルを生成できます: … … 186 199 if (options.realm is not None): 187 200 realm = options.realm 188 201 189 202 # Generate the string to enter into the htdigest file 190 203 kd = lambda x: md5(':'.join(x)).hexdigest() … … 192 205 }}} 193 206 194 Note: 上記のスクリプトを使用する場合、 --authの引数に '''`trac`''' を指定し、レルムを設定しなければなりません。使用例 (上記スクリプトを trac-digest.py として保存したとします):207 Note: 上記のスクリプトを使用する場合、 `--auth` の引数に '''`trac`''' を指定し、レルムを設定しなければなりません。使用例 (上記スクリプトを trac-digest.py として保存したとします): 195 208 196 209 {{{ … … 202 215 `md5sum` ユーティリティを使用するとダイジェスト認証のパスワードファイルを作成することができます: 203 216 {{{ 204 $ printf "${user}:trac:${password}" | md5sum - >>user.htdigest 205 }}} 206 'to-file' は手で編集が必要です。行末の " -" を削除し、行頭に "${user}:trac:" を追加してください。 217 user= 218 realm= 219 password= 220 path_to_file= 221 echo ${user}:${realm}:$(printf "${user}:${realm}:${password}" | md5sum - | sed -e 's/\s\+-//') > ${path_to_file} 222 }}} 207 223 208 224 == リファレンス == #Reference … … 222 238 -b HOSTNAME, --hostname=HOSTNAME 223 239 the host name or IP address to bind to 224 --protocol=PROTOCOL http|scgi|ajp 240 --protocol=PROTOCOL http|scgi|ajp|fcgi 225 241 -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.0242 --http10 use HTTP/1.0 protocol version instead of HTTP/1.1 243 --http11 use HTTP/1.1 protocol version (default) 228 244 -e PARENTDIR, --env-parent-dir=PARENTDIR 229 245 parent directory of the project environments … … 232 248 -r, --auto-reload restart automatically when sources are modified 233 249 -s, --single-env only serve a single project without the project list 234 }}} 250 -d, --daemonize run in the background as a daemon 251 --pidfile=PIDFILE when daemonizing, file to which to write pid 252 --umask=MASK when daemonizing, file mode creation mask to use, in 253 octal notation (default 022) 254 --group=GROUP the group to run as 255 --user=USER the user to run as 256 }}} 257 258 tracd を起動させたターミナルウィンドウを閉じる場合には、tracd がハングアップしないように -d オプションを使用してください。 235 259 236 260 == Tips == #Tips … … 251 275 ''TracLinks における `htdocs:` のサポートは Trac のバージョン 0.10 で追加されました。'' 252 276 253 === tracd をプロキシの背後で使用する #Usingtracdbehindaproxy277 === tracd をプロキシの背後で使用する === #Usingtracdbehindaproxy 254 278 255 279 ある状況において tracd を Apache もしくは他のウェブサーバの背後で使用するときについてです。 … … 259 283 もし、`tracd` に接続するために AJP プロトコルを使用しているならば (flup をインストールしているならば可能です) 、ダブルクオテーションの問題にぶつかったことがあるかもしれません。その際は、 `--unquote` パラメータを追加することを考えてください。 260 284 261 See also [http://trac.edgewall.org/wiki/TracOnWindowsIisAjp TracOnWindowsIisAjp], [http://trac.edgewall.org/wiki/TracNginxRecipe TracNginxRecipe]. 285 [trac:TracOnWindowsIisAjp], [trac:TracNginxRecipe] も参照してください。 286 287 === プロキシ背後の tracd の認証 === #Authenticationfortracdbehindaproxy 288 {{{--basic-auth}}} を使用する代わりに、tracd のインスタンスに外部認証を提供しても有効です。この方法については [trac:#9206 #9206] で議論されています。 289 290 下記は Apache 2.2 、mod_proxy、mod_authnz_ldap を使用した場合の設定例です。 291 292 まず Apache のネームスペースに tracd を定義します。 293 294 {{{ 295 <Location /project/proxified> 296 Require ldap-group cn=somegroup, ou=Groups,dc=domain.com 297 Require ldap-user somespecificusertoo 298 ProxyPass http://localhost:8101/project/proxified/ 299 # Turns out we don't really need complicated RewriteRules here at all 300 RequestHeader set REMOTE_USER %{REMOTE_USER}s 301 </Location> 302 }}} 303 304 HTTP_REMOTE_USER ヘッダを有効な認証ソースとして認識させるためには単一ファイルのプラグインが必要です。'''HTTP_FOO_BAR''' のような HTTP ヘッダは '''Foo-Bar''' に変換されます。'''remote-user-auth.py''' のようなファイル名をつけ、'''proxified/plugins''' ディレクトリ内に配置してください: 305 {{{ 306 #!python 307 from trac.core import * 308 from trac.config import BoolOption 309 from trac.web.api import IAuthenticator 310 311 class MyRemoteUserAuthenticator(Component): 312 313 implements(IAuthenticator) 314 315 obey_remote_user_header = BoolOption('trac', 'obey_remote_user_header', 'false', 316 """Whether the 'Remote-User:' HTTP header is to be trusted for user logins 317 (''since ??.??').""") 318 319 def authenticate(self, req): 320 if self.obey_remote_user_header and req.get_header('Remote-User'): 321 return req.get_header('Remote-User') 322 return None 323 324 }}} 325 326 TracIni にパラメータを追加します: 327 {{{ 328 ... 329 [trac] 330 ... 331 obey_remote_user_header = true 332 ... 333 }}} 334 335 tracd を起動します: 336 {{{ 337 tracd -p 8101 -r -s proxified --base-path=/project/proxified 338 }}} 339 340 もしプラグインをすべてのプロジェクトにインストールしたい場合、 [TracPlugins#Plugindiscovery 共有pluginsディレクトリ] に格納し、共有 trac.ini でプラグインのコンポーネントを有効に設定しなければいけません。 341 342 共有 config (例えば `/srv/trac/conf/trac.ini`): 343 {{{ 344 [components] 345 remote-user-auth.* = enabled 346 [inherit] 347 plugins_dir = /srv/trac/plugins 348 [trac] 349 obey_remote_user_header = true 350 }}} 351 352 各プロジェクトの config (例えば `/srv/trac/envs/myenv`): 353 {{{ 354 [inherit] 355 file = /srv/trac/conf/trac.ini 356 }}} 262 357 263 358 === / (root) とは異なるベースパスで起動する === #Servingadifferentbasepaththan 264 Tracd は /<project> とは異なるベース URL でプロジェクトを提供することをサポートします。変更するためのパラメータは以下の通りです 359 Tracd は /<project> とは異なるベース URL でプロジェクトを提供することをサポートします。変更するためのパラメータは以下の通りです。 265 360 {{{ 266 361 $ tracd --base-path=/some/path … … 268 363 269 364 ---- 270 See also: TracInstall, TracCgi, TracModPython, TracGuide, [trac:TracOnWindowsStandalone#RunningTracdasservice Running tracd.exe as a Windows service]365 See also: TracInstall, TracCgi, TracModPython, TracGuide, [trac:TracOnWindowsStandalone#RunningTracdasservice Windows 上での tracd.exe の実行]