TracStandaloneバージョン 2バージョン 3 との変更


以下の違いを無視:
日時:
2012/10/20 13:54:06 (13年前)
更新者:
trac
コメント:

--

凡例:

未変更
追加
削除
更新
  • TracStandalone

    v2 v3  
     1** Note: このページのドキュメントは Trac 1.0 に対応しています。それ以前のバージョンについては [[0.12/TracStandalone]] を参照してください。 ** 
    12= Tracd = #Tracd 
    23 
     
    67== 利点 == #Pros 
    78 
    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 自身またはプラグインのコード ) を更新したときに、自動的にサーバが再起動します 
    1112 
    1213== 欠点 == #Cons 
    1314 
    14  * 機能が少ない: Tracd に実装されている web サーバはとてもシンプルで、 Apache httpd のように拡張性のある設定ができません 
     15 * 機能が少ない: Tracd に実装されている web サーバはとてもシンプルで、 Apache httpd のように拡張性のある設定ができません 
    1516 * ネイティブで 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 を使用します 
    1718 
    1819== 使用例 == #Usageexamples 
     
    7071 
    7172Note: もし !AppDirectory が上記のように設定されているならば、実行ファイル ''と'' スクリプトのパス、パラメータの値は、設定したフォルダへの相対パスになります。ここ一点に絞って言うと、これにより Python をアップデートするときに変更箇所が限定されるため少しだけ楽になります。 
    72 (ドキュメントでは、 /full/path/to/htpasswd とフルパス指定するよう書いてあるかもしれませんが、これは、 .htpasswd ファイルについても同様のことが言えます;このファイルを Python ディレクトリ配下に配置したいと思わないかもしれません。) 
     73(ドキュメントでは、 /full/path/to/htpasswd とフルパス指定するよう書いてあるかもしれませんが、これは、 .htpasswd ファイルについても同様のことが言えますこのファイルを Python ディレクトリ配下に配置したいと思わないかもしれません。) 
    7374}}} 
    7475 
     
    8485[http://trac-hacks.org/ Trac Hacks] より [http://trac-hacks.org/wiki/WindowsServiceScript WindowsServiceScript] を入手して下さい。 Trac のサービスを インストール、削除、開始、停止などできます。 
    8586 
     87=== オプション 3 === #Option3 
     88 
     89cygwin の 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 
    8695== 認証を使用する == #UsingAuthentication 
    8796 
    88 Tracd は基本認証とダイジェスト認証の両方に対応しています。ダイジェスト認証の方がより安全です。以降の例ではダイジェスト認証を使用しています。; 基本認証を使用するためには、下記のコマンドライン入力時に `--auth` を `--basic-auth` に置き換えて下さい。 
     97Tracd は基本認証とダイジェスト認証の両方に対応しています。ダイジェスト認証の方がより安全です。以降の例ではダイジェスト認証を使用しています。基本認証を使用するためには、下記のコマンドライン入力時に `--auth` を `--basic-auth` に置き換えて下さい。 
    8998 
    9099認証を使用する際の一般的なフォーマット: 
     
    101110 * '''project_path''': プロジェクトへのパス 
    102111 
    103  * **`--auth`** 上記の例では、ダイジェスト認証を使用しています。基本認証を使用する際は `--auth` を `--basic-auth` に置き換えてください。基本認証は "realm" を必要としませんが、コマンドとしては、最後の引用句に空のレルム名前が直接続くことになるので、2つ目のコンマは必要になります 
     112 * **`--auth`** 上記の例では、ダイジェスト認証を使用しています。基本認証を使用する際は `--auth` を `--basic-auth` に置き換えてください。基本認証は "realm" を必要としませんが、コマンドとしては、最後の引用句に空のレルム名前が直接続くことになるので、2つ目のコンマは必要になります 
    104113 
    105114例: 
     
    128137このセクションでは、 `tracd` と Apache の .htpasswd ファイルの使用方法について記述します。 
    129138 
     139  Note: htpasswd のフォーマットを解読するために、(少なくとも Python 2.6 は) fcrypt パッケージをインストールする必要があります。 
     140  Trac のソースコードでは、まず `import crypt` を試みますが、 
     141  Python 2.6 にそのようなパッケージはありません。 `SHA-1` パスワードのみ、このモジュールなしで対応します。( Trac 1.0 から) 
     142 
    130143Apache の `htpasswd` コマンドを使用して、 .htpasswd ファイルを作成します。 ( Apache を使用せずにこれらのファイルを作成する方法については [#GeneratingPasswordsWithoutApache 下記] を参照して下さい): 
    131144{{{ 
    132145 $ sudo htpasswd -c /path/to/env/.htpasswd username 
    133146}}} 
    134 そしてユーザを追加します 
     147そしてユーザを追加します: 
    135148{{{ 
    136149 $ sudo htpasswd /path/to/env/.htpasswd username2 
     
    152165もし、 Apache がインストールされているなら、パスワードファイルを生成するのに、 htdigest コマンドを使用することができます。 'htdigest' とタイプして使用方法を見るか、詳細な使用方法を見るために Apache のマニュアルの [http://httpd.apache.org/docs/2.0/programs/htdigest.html このページ] を読んでください。ユーザを作成するたびに、パスワードを入力するように求められます。パスワードファイルの名前には好きな名前をつけることができますが、 `users.htdigest` というような名前にしておけば、ファイルに何が含まれているかを覚えておけるでしょう。このファイルは <projectname>/conf フォルダに [TracIni trac.ini] ファイルと一緒に置いておくとよいでしょう。 
    153166 
    154 引数 --auth なしで tracd をスタートできることに注意して下さい。ただし、 ''ログイン'' (英語版では ''Login'') リンクをクリックするとエラーになります。 
     167引数 `--auth` なしで tracd をスタートできることに注意して下さい。ただし、 ''ログイン'' (英語版では ''Login'') リンクをクリックするとエラーになります。 
    155168 
    156169=== Apache 以外の環境でパスワードを生成する === #GeneratingPasswordsWithoutApache 
    157170 
    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 を使用するとよいでしょう 
    159172 
    160173簡単な Python スクリプトで '''digest''' 認証のパスワードファイルを生成できます: 
     
    186199if (options.realm is not None): 
    187200   realm = options.realm 
    188     
     201 
    189202# Generate the string to enter into the htdigest file 
    190203kd = lambda x: md5(':'.join(x)).hexdigest() 
     
    192205}}} 
    193206 
    194 Note: 上記のスクリプトを使用する場合、 --auth の引数に '''`trac`''' を指定し、レルムを設定しなければなりません。使用例 (上記スクリプトを trac-digest.py として保存したとします): 
     207Note: 上記のスクリプトを使用する場合、 `--auth` の引数に '''`trac`''' を指定し、レルムを設定しなければなりません。使用例 (上記スクリプトを trac-digest.py として保存したとします): 
    195208 
    196209{{{ 
     
    202215`md5sum` ユーティリティを使用するとダイジェスト認証のパスワードファイルを作成することができます: 
    203216{{{ 
    204  $ printf "${user}:trac:${password}" | md5sum - >>user.htdigest 
    205 }}} 
    206 'to-file' は手で編集が必要です。行末の " -" を削除し、行頭に "${user}:trac:" を追加してください。 
     217user= 
     218realm= 
     219password= 
     220path_to_file= 
     221echo ${user}:${realm}:$(printf "${user}:${realm}:${password}" | md5sum - | sed -e 's/\s\+-//') > ${path_to_file} 
     222}}} 
    207223 
    208224== リファレンス == #Reference 
     
    222238  -b HOSTNAME, --hostname=HOSTNAME 
    223239                        the host name or IP address to bind to 
    224   --protocol=PROTOCOL   http|scgi|ajp 
     240  --protocol=PROTOCOL   http|scgi|ajp|fcgi 
    225241  -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 
     242  --http10              use HTTP/1.0 protocol version instead of HTTP/1.1 
     243  --http11              use HTTP/1.1 protocol version (default) 
    228244  -e PARENTDIR, --env-parent-dir=PARENTDIR 
    229245                        parent directory of the project environments 
     
    232248  -r, --auto-reload     restart automatically when sources are modified 
    233249  -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 
     258tracd を起動させたターミナルウィンドウを閉じる場合には、tracd がハングアップしないように -d オプションを使用してください。 
    235259 
    236260== Tips == #Tips 
     
    251275 ''TracLinks における `htdocs:` のサポートは Trac のバージョン 0.10 で追加されました。'' 
    252276 
    253 === tracd をプロキシの背後で使用する #Usingtracdbehindaproxy 
     277=== tracd をプロキシの背後で使用する === #Usingtracdbehindaproxy 
    254278 
    255279ある状況において tracd を Apache もしくは他のウェブサーバの背後で使用するときについてです。 
     
    259283もし、`tracd` に接続するために AJP プロトコルを使用しているならば (flup をインストールしているならば可能です) 、ダブルクオテーションの問題にぶつかったことがあるかもしれません。その際は、 `--unquote` パラメータを追加することを考えてください。 
    260284 
    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 
     304HTTP_REMOTE_USER ヘッダを有効な認証ソースとして認識させるためには単一ファイルのプラグインが必要です。'''HTTP_FOO_BAR''' のような HTTP ヘッダは '''Foo-Bar''' に変換されます。'''remote-user-auth.py''' のようなファイル名をつけ、'''proxified/plugins''' ディレクトリ内に配置してください: 
     305{{{ 
     306#!python 
     307from trac.core import * 
     308from trac.config import BoolOption 
     309from trac.web.api import IAuthenticator 
     310 
     311class 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 
     326TracIni にパラメータを追加します: 
     327{{{ 
     328... 
     329[trac] 
     330... 
     331obey_remote_user_header = true 
     332... 
     333}}} 
     334 
     335tracd を起動します: 
     336{{{ 
     337tracd -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] 
     345remote-user-auth.* = enabled 
     346[inherit] 
     347plugins_dir = /srv/trac/plugins 
     348[trac] 
     349obey_remote_user_header = true 
     350}}} 
     351 
     352各プロジェクトの config (例えば `/srv/trac/envs/myenv`): 
     353{{{ 
     354[inherit] 
     355file = /srv/trac/conf/trac.ini 
     356}}} 
    262357 
    263358===  / (root) とは異なるベースパスで起動する === #Servingadifferentbasepaththan 
    264 Tracd は /<project> とは異なるベース URL でプロジェクトを提供することをサポートします。変更するためのパラメータは以下の通りです 
     359Tracd は /<project> とは異なるベース URL でプロジェクトを提供することをサポートします。変更するためのパラメータは以下の通りです 
    265360{{{ 
    266361 $ tracd --base-path=/some/path 
     
    268363 
    269364---- 
    270 See also: TracInstall, TracCgi, TracModPython, TracGuide, [trac:TracOnWindowsStandalone#RunningTracdasservice Running tracd.exe as a Windows service] 
     365See also: TracInstall, TracCgi, TracModPython, TracGuide, [trac:TracOnWindowsStandalone#RunningTracdasservice Windows 上での tracd.exe の実行]