Changes between Version 1 and Version 2 of TracStandalone


Ignore:
Timestamp:
May 13, 2012, 9:15:45 PM (12 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracStandalone

    v1 v2  
    1 = Tracd =
    2 
    3 Tracd は軽量なスタンドアロンの Trac web サーバです。ほとんどのケースでは [wiki:TracCgi CGI] よりセットアップが簡単で、処理速度も速くなります。
    4 
    5 == 利点 ==
     1= Tracd = #Tracd
     2
     3Tracd は軽量なスタンドアロンの Trac web サーバです。
     4Tracd は様々な場面で使用することができます。テストや開発用のサーバからロードバランサとして使用されているもう一つのウェブサーバの後段に複数のプロセスを配置するときなどに使われます。
     5
     6== 利点 == #Pros
    67
    78 * 依存性が低い: apache その他 web サーバをインストールする必要がありません。
    8  * 速い: [wiki:TracModPython mod_python] バージョンと同じくらい速いでしょう。 ([wiki:TracCgi CGI] よりはずっと速い)。
     9 * 速い: [wiki:TracModPython mod_python] バージョンと同じくらい速いでしょう。 ([wiki:TracCgi CGI] よりはずっと速い)。そして、 バージョン 0.12 以降では、デフォルトで HTTP のバージョン 1.1 が使えるようになりました。
    910 * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード ( Trac 自身またはプラグインのコード ) を更新したときに、自動的にサーバが再起動します。
    1011
    11 == 欠点 ==
    12 
    13  * 機能が少ない: Tracd に実装されている web サーバはとてもシンプルで、 Apache HTTPD のように拡張性のある設定ができません。
     12== 欠点 == #Cons
     13
     14 * 機能が少ない: Tracd に実装されている web サーバはとてもシンプルで、 Apache httpd のように拡張性のある設定ができません。
    1415 * ネイティブで HTTPS に対応しない: 代わりに [http://www.rickk.com/sslwrap/ sslwrap] または
    1516   [http://trac.edgewall.org/wiki/STunnelTracd stunnel -- tracd と stunnel を使うためのチュートリアル] または Apache の mod_proxy を使用します。
    1617
    17 == 使用例 ==
    18 
    19 ポート 8080 に単一のプロジェクトを作成します。 (http://localhost:8080/)
     18== 使用例 == #Usageexamples
     19
     20単一のプロジェクトをポート 8080 でホストします。 (http://localhost:8080/)
    2021{{{
    2122 $ tracd -p 8080 /path/to/project
    2223}}}
    23 複数のプロジェクト(http://localhost:8080/project1/ と http://localhost:8080/project2/)
     24厳密に言うと、この状態では Trac は ''localhost のみ'' ではなく、ネットワーク越しの全員からアクセス可能になっています。 ''--hostname'' オプションを使用すると接続元を制限できます。
     25{{{
     26 $ tracd --hostname=localhost -p 8080 /path/to/project
     27}}}
     28複数のプロジェクトをホストする場合はこうです (http://localhost:8080/project1/ と http://localhost:8080/project2/)
    2429{{{
    2530 $ tracd -p 8080 /path/to/project1 /path/to/project2
    2631}}}
    2732
    28 Trac は異なるプロジェクト間の URL の一意性を保つために、パスの一番最後の文字列を使用するため、プロジェクト間でパスの一番最後の部分を同じにすることは出来ません。
     33Trac は異なるプロジェクト間での URL の一意性を保つために、パスの一番最後の文字列 (訳注: basename) を使用するため、プロジェクト間でパスの一番最後の部分を同じにすることは出来ません。
    2934もし、 `/project1/path/to` と `/project2/path/to` を同時に指定した場合、二つ目のプロジェクトだけしか見えなくなります。
    3035
     
    3439}}}
    3540
    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 もちろん、ダイジェストファイルは複数のプロジェクト間で共有することが出来ます:
     41Windows でサーバを終了するには必ず {{{CTRL-BREAK}}} を使用してください。 -- {{{CTRL-C}}} を使用すると Python のプロセスがバックグラウンドで起動したままになるでしょう。
     42
     43== Windows サービスとしてインストールする == #InstallingasaWindowsService
     44
     45=== オプション 1 === #Option1
     46Windows のサービスとしてインストールするには、 [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
     55Windows の起動時に 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
     663 つの文字列のパラメータが提供されています:
     67||!AppDirectory ||C:\Python26\ ||
     68||Application ||python.exe ||
     69||!AppParameters ||scripts\tracd-script.py -p 8080 ... ||
     70
     71Note: もし !AppDirectory が上記のように設定されているならば、実行ファイル ''と'' スクリプトのパス、パラメータの値は、設定したフォルダへの相対パスになります。ここ一点に絞って言うと、これにより Python をアップデートするときに変更箇所が限定されるため少しだけ楽になります。
     72(ドキュメントでは、 /full/path/to/htpasswd とフルパス指定するよう書いてあるかもしれませんが、これは、 .htpasswd ファイルについても同様のことが言えます;このファイルを Python ディレクトリ配下に配置したいと思わないかもしれません。)
     73}}}
     74
     75Windows 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
     79net 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
     88Tracd は基本認証とダイジェスト認証の両方に対応しています。ダイジェスト認証の方がより安全です。以降の例ではダイジェスト認証を使用しています。; 基本認証を使用するためには、下記のコマンドライン入力時に `--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
    50107{{{
    51108 $ tracd -p 8080 \
    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" \
    54117   /path/to/project1 /path/to/project2
    55118}}}
    56119
    57 ダイジェストファイルを共有するもうひとつの方法は、プロジェクトの名前に "*"
    58 を指定することです:
     120パスワードファイルを共有するもう一つの方法として、プロジェクトの名前を指定するところで、 "*" を使用します:
    59121{{{
    60122 $ tracd -p 8080 \
    61    --auth *,/path/to/users.htdigest,mycompany.com \
     123   --auth="*,/path/to/users.htdigest,mycompany.com" \
    62124   /path/to/project1 /path/to/project2
    63125}}}
    64126
    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
     130Apache の `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
    76164from optparse import OptionParser
    77 import md5
     165# The md5 module is deprecated in Python 2.5
     166try:
     167    from hashlib import md5
     168except ImportError:
     169    from md5 import md5
     170realm = 'trac'
    78171
    79172# build the options
     
    84177parser.add_option("-p", "--password",action="store", dest="password", type = "string",
    85178                  help="the password to use")
     179parser.add_option("-r", "--realm",action="store", dest="realm", type = "string",
     180                  help="the realm in which to create the digest")
    86181(options, args) = parser.parse_args()
    87182
     
    89184if (options.username is None) or (options.password is None):
    90185   parser.error("You must supply both the username and password")
     186if (options.realm is not None):
     187   realm = options.realm
    91188   
    92189# Generate the string to enter into the htdigest file
    93 realm = 'trac'
    94 kd = lambda x: md5.md5(':'.join(x)).hexdigest()
     190kd = lambda x: md5(':'.join(x)).hexdigest()
    95191print ':'.join((options.username, realm, kd([options.username, realm, options.password])))
    96192}}}
    97193
    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 === 静的なリソースを扱う ===
     194Note: 上記のスクリプトを使用する場合、 --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{{{
     212Usage: tracd [options] [projenv] ...
     213
     214Options:
     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
    108239
    109240もし、 `tracd` が単一のプロジェクトのみを扱う Web サーバだとしたら、
     
    115246
    116247例: ファイル名が `$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]` と書くことができます。
    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
     261See also [http://trac.edgewall.org/wiki/TracOnWindowsIisAjp TracOnWindowsIisAjp], [http://trac.edgewall.org/wiki/TracNginxRecipe TracNginxRecipe].
     262
     263===  / (root) とは異なるベースパスで起動する === #Servingadifferentbasepaththan
     264Tracd は /<project> とは異なるベース URL でプロジェクトを提供することをサポートします。変更するためのパラメータは以下の通りです
     265{{{
     266 $ tracd --base-path=/some/path
     267}}}
    124268
    125269----
    126 See also: TracInstall, TracCgi, TracModPython, TracGuide
    127 
    128 ----
    129 '''Translation:'''
    130  * [https://opensvn.csie.org/traccgi/trac_rus/wiki/StandAloneTracForTeapot Russian] (перевод на Русский)
     270See also: TracInstall, TracCgi, TracModPython, TracGuide, [trac:TracOnWindowsStandalone#RunningTracdasservice Running tracd.exe as a Windows service]