TracStandalone: バージョン 1 における更新

差分発生行の前後
無視リスト:
更新者:
trac (IPアドレス: 127.0.0.1)
更新日時:
2006/11/22 18:14:01 (18 年前)
コメント:

--

凡例:

変更無し
追加
削除
更新
  • TracStandalone

    v0 v1  
     1= Tracd = 
     2 
     3Tracd は軽量なスタンドアロンの Trac web サーバです。ほとんどのケースでは [wiki:TracCgi CGI] よりセットアップが簡単で、処理速度も速くなります。 
     4 
     5== 利点 == 
     6 
     7 * 依存性が低い: apache その他 web サーバをインストールする必要がありません。 
     8 * 速い: [wiki:TracModPython mod_python] バージョンと同じくらい速いでしょう。 ([wiki:TracCgi CGI] よりはずっと速い)。 
     9 * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード ( Trac 自身またはプラグインのコード ) を更新したときに、自動的にサーバが再起動します。 
     10 
     11== 欠点 == 
     12 
     13 * 機能が少ない: Tracd に実装されている web サーバはとてもシンプルで、 Apache HTTPD のように拡張性のある設定ができません。 
     14 * ネイティブで HTTPS に対応しない: 代わりに [http://www.rickk.com/sslwrap/ sslwrap] または 
     15   [http://trac.edgewall.org/wiki/STunnelTracd stunnel -- tracd と stunnel を使うためのチュートリアル] または Apache の mod_proxy を使用します。 
     16 
     17== 使用例 == 
     18 
     19ポート 8080 に単一のプロジェクトを作成します。 (http://localhost:8080/) 
     20{{{ 
     21 $ tracd -p 8080 /path/to/project 
     22}}} 
     23複数のプロジェクト(http://localhost:8080/project1/ と http://localhost:8080/project2/) 
     24{{{ 
     25 $ tracd -p 8080 /path/to/project1 /path/to/project2 
     26}}} 
     27 
     28Trac は異なるプロジェクト間の URL の一意性を保つために、パスの一番最後の文字列を使用するため、プロジェクト間でパスの一番最後の部分を同じにすることは出来ません。 
     29もし、 `/project1/path/to` と `/project2/path/to` を同時に指定した場合、二つ目のプロジェクトだけしか見えなくなります。 
     30 
     31複数のプロジェクトを動かすもう一つの方法は、 `-e` オプションで親ディレクトリを指定し、サブディレクトリに TracEnvironment を配置します。上記の例は以下のように書き換えられます: 
     32{{{ 
     33 $ tracd -p 8080 -e /path/to 
     34}}} 
     35 
     36== 認証を使用する == 
     37 
     38Tracd は基本認証とダイジェスト認証の両方に対応しています。デフォルトはダイジェスト認証です; 基本認証を使用するためには、以降の例で使用する `--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もちろん、ダイジェストファイルは複数のプロジェクト間で共有することが出来ます: 
     50{{{ 
     51 $ tracd -p 8080 \ 
     52   --auth project1,/path/to/users.htdigest,mycompany.com \ 
     53   --auth project2,/path/to/users.htdigest,mycompany.com \ 
     54   /path/to/project1 /path/to/project2 
     55}}} 
     56 
     57ダイジェストファイルを共有するもうひとつの方法は、プロジェクトの名前に "*"  
     58を指定することです: 
     59{{{ 
     60 $ tracd -p 8080 \ 
     61   --auth *,/path/to/users.htdigest,mycompany.com \ 
     62   /path/to/project1 /path/to/project2 
     63}}} 
     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 以外の環境でパスワードを生成する == 
     72 
     73もし Apache が使用できない場合でも、簡単な Python スクリプトでパスワードを生成できます: 
     74 
     75{{{ 
     76from optparse import OptionParser 
     77import md5 
     78 
     79# build the options 
     80usage = "usage: %prog [options]" 
     81parser = OptionParser(usage=usage) 
     82parser.add_option("-u", "--username",action="store", dest="username", type = "string", 
     83                  help="the username for whom to generate a password") 
     84parser.add_option("-p", "--password",action="store", dest="password", type = "string", 
     85                  help="the password to use") 
     86(options, args) = parser.parse_args() 
     87 
     88# check options 
     89if (options.username is None) or (options.password is None): 
     90   parser.error("You must supply both the username and password") 
     91    
     92# Generate the string to enter into the htdigest file 
     93realm = 'trac' 
     94kd = lambda x: md5.md5(':'.join(x)).hexdigest() 
     95print ':'.join((options.username, realm, kd([options.username, realm, options.password]))) 
     96}}} 
     97 
     98Note: もし tracd を --basic-auth ではなくて、 --auth オプションを使用して起動するときに、上記のスクリプトを使わないといけないとしたら --auth の値に 'trac' を( シングルクォートなしで ) 指定し、レルムを設定しなければなりません。( 上記スクリプトを trac-digest.py として保存したとします) 
     99 
     100{{{ 
     101python trac-digest.py -u username -p password >> c:\digest.txt 
     102python tracd --port 8000 --auth proj_name,c:\digest.txt,trac c:\path\to\proj_name 
     103}}} 
     104 
     105== Tips == 
     106 
     107=== 静的なリソースを扱う === 
     108 
     109もし、 `tracd` が単一のプロジェクトのみを扱う Web サーバだとしたら、 
     110静的なリソースを割り当てるのに使用することができます。 
     111(tar アーカイブ, Doxygen ドキュメントなど) 
     112 
     113この静的なリソースは `$TRAC_ENV/htdocs` フォルダに置き、 
     114`<project_URL>/chrome/site/...` という URL でアクセスします。 
     115 
     116例: ファイル名が `$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 
     121Trac の開発バージョンでは新しく `htdocs:` に対応します。 TracLinks は 
     122上記のようなシンタックスになります。これによって、上記の例のリンクはただ単に  
     123`htdocs:software-0.1.tar.gz` と書くことができます。 
     124 
     125---- 
     126See also: TracInstall, TracCgi, TracModPython, TracGuide 
     127 
     128---- 
     129'''Translation:''' 
     130 * [https://opensvn.csie.org/traccgi/trac_rus/wiki/StandAloneTracForTeapot Russian] (перевод на Русский) 
track feed