Changes between Version 1 and Version 2 of TracStandalone


Ignore:
Timestamp:
2009/10/03 12:40:43 (14 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracStandalone

    v1 v2  
    11= Tracd = 
    22 
    3 Tracd は軽量なスタンドアロンの Trac web サーバです。ほとんどのケースでは [wiki:TracCgi CGI] よりセットアップが簡単で、処理速度も速くなります。 
    4  
    5 == 利点 == 
    6  
    7  * 依存性が低い: apache その他 web サーバをインストールする必要がありません。 
     3Tracd は軽量なスタンドアロンの Trac Web サーバです。ほとんどのケースでは [wiki:TracCgi CGI] よりセットアップが簡単で、処理速度も速くなります。 
     4 
     5== 利点 == #Pros 
     6 
     7 * 依存性が低い: Apache その他 Web サーバをインストールする必要がありません。 
    88 * 速い: [wiki:TracModPython mod_python] バージョンと同じくらい速いでしょう。 ([wiki:TracCgi CGI] よりはずっと速い)。 
    9  * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード ( Trac 自身またはプラグインのコード ) を更新したときに、自動的にサーバが再起動します。 
    10  
    11 == 欠点 == 
    12  
    13  * 機能が少ない: Tracd に実装されている web サーバはとてもシンプルで、 Apache HTTPD のように拡張性のある設定ができません。 
     9 * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード (Trac 自身またはプラグインのコード) を更新したときに、自動的にサーバが再起動します。 
     10 
     11== 欠点 == #Cons 
     12 
     13 * 機能が少ない: Tracd に実装されている Web サーバはとてもシンプルで、 Apache HTTPD のように拡張性のある設定ができません。 
    1414 * ネイティブで HTTPS に対応しない: 代わりに [http://www.rickk.com/sslwrap/ sslwrap] または 
    1515   [http://trac.edgewall.org/wiki/STunnelTracd stunnel -- tracd と stunnel を使うためのチュートリアル] または Apache の mod_proxy を使用します。 
    1616 
    17 == 使用例 == 
    18  
    19 ポート 8080 に単一のプロジェクトを作成します。 (http://localhost:8080/) 
     17== 使用例 == #Usageexamples 
     18 
     19単一のプロジェクトをポート 8080 でホストします。 (http://localhost:8080/) 
    2020{{{ 
    2121 $ tracd -p 8080 /path/to/project 
    2222}}} 
    23 複数のプロジェクト(http://localhost:8080/project1/ と http://localhost:8080/project2/) 
     23厳密に言うと、この状態では Trac は ''localhost のみ'' ではなく、ネットワーク越しの全員からアクセス可能になっています。 ''--hostname'' オプションを使用すると接続元を制限できます。 
     24{{{ 
     25 $ tracd --hostname=localhost -p 8080 /path/to/project 
     26}}} 
     27複数のプロジェクトをホストする場合はこうです (http://localhost:8080/project1/ と http://localhost:8080/project2/) 
    2428{{{ 
    2529 $ tracd -p 8080 /path/to/project1 /path/to/project2 
    2630}}} 
    2731 
    28 Trac は異なるプロジェクト間の URL の一意性を保つために、パスの一番最後の文字列を使用するため、プロジェクト間でパスの一番最後の部分を同じにすることは出来ません。 
     32Trac は異なるプロジェクト間での URL の一意性を保つために、パスの一番最後の文字列 (訳注: basename) を使用するため、プロジェクト間でパスの一番最後の部分を同じにすることは出来ません。 
    2933もし、 `/project1/path/to` と `/project2/path/to` を同時に指定した場合、二つ目のプロジェクトだけしか見えなくなります。 
    3034 
     
    3438}}} 
    3539 
    36 == 認証を使用する == 
    37  
    38 Tracd は基本認証とダイジェスト認証の両方に対応しています。デフォルトはダイジェスト認証です; 基本認証を使用するためには、以降の例で使用する `--auth` を `--basic-auth` に置き換え、レルムの指定を削除して下さい。 
     40Windows でサーバを終了するには必ず {{{CTRL-BREAK}}} を使用してください。 -- {{{CTRL-C}}} を使用すると Python のプロセスがバックグラウンドで起動したままになるでしょう。 
     41 
     42== Windows サービスとしてインストールする == #InstallingasaWindowsService 
     43 
     44Windows サービスとしてインストールするには [http://www.google.com/search?q=srvany.exe SRVANY] を取得して起動します: 
     45{{{ 
     46 C:\path\to\instsrv.exe tracd C:\path\to\srvany.exe 
     47 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>" 
     48 net start tracd 
     49}}} 
     50 
     51{{{tracd.exe}}} は使用 '''しない''' で下さい。代わりに {{{python.exe}}} を直接登録し、引数に {{{tracd-script.py}}} を使用して下さい。 {{{tracd.exe}}} を使用してしまうと、 python プロセスが SRVANY の制御下ではなくなってしまうため、 {{{net stop tracd}}} を使用しても python プロセスが残留してしまいます。 
     52 
     53Windows の起動時に tracd を自動起動させることもできます: 
     54{{{ 
     55 sc config tracd start= auto 
     56}}} 
     57 
     58空白には意味があります。そのまま入力して下さい。 
     59 
     60== 認証を使用する == #UsingAuthentication 
     61 
     62tracd は Apache の .htpasswd ファイルを使用できます: 
     63 
     64.htpasswd ファイルは htpasswd コマンドを使用して作成します: 
     65 
     66{{{ 
     67sudo htpasswd -c /path/to/env/.htpasswd username 
     68}}} 
     69ユーザを追加する場合は以下の通りです: 
     70{{{ 
     71sudo htpasswd /path/to/env/.htpasswd username2 
     72}}} 
     73tracd の起動オプションにファイルを指定してください: 
     74{{{ 
     75tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname 
     76}}} 
     77 
     78 
     79Tracd は基本認証とダイジェスト認証の両方に対応しています。デフォルトはダイジェスト認証です; 基本認証を使用するためには、以降の例で使用する `--auth` を `--basic-auth` に置き換えて下さい。 (ダイアログに使用する "realm" を指定しなければなりません。 BASICAUTH には カンマ を末尾に指定した空の文字列を指定することができます。) 
    3980 
    4081  ''基本認証への対応はバージョン 0.9 以降で追加されました。'' 
    4182 
    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  
     83認証を使用するための一般的なコマンドは以下の通りです: 
     84 
     85{{{ 
     86 $ tracd -p port --auth=base_project_dir,password_file_path,realm project_path 
     87}}} 
     88 
     89オプションについて: 
     90 
     91 * '''base_project_dir''' はプロジェクトのベースディレクトリ; Note: これはプロジェクト名ではありません。そして Windows の環境においても、大文字と小文字を区別します。 
     92 * '''password_file_path''' パスワードファイルのパス 
     93 * '''realm''' レルム 
     94 * '''project_path''' プロジェクトのパス 
     95 
     96使用例: 
     97 
     98{{{ 
     99 $ tracd -p 8080 \ 
     100   --auth=project1,/path/to/users.htdigest,mycompany.com /path/to/project1 
     101}}} 
    49102もちろん、ダイジェストファイルは複数のプロジェクト間で共有することが出来ます: 
    50103{{{ 
    51104 $ tracd -p 8080 \ 
    52    --auth project1,/path/to/users.htdigest,mycompany.com \ 
    53    --auth project2,/path/to/users.htdigest,mycompany.com \ 
     105   --auth=project1,/path/to/users.htdigest,mycompany.com \ 
     106   --auth=project2,/path/to/users.htdigest,mycompany.com \ 
    54107   /path/to/project1 /path/to/project2 
    55108}}} 
     
    59112{{{ 
    60113 $ tracd -p 8080 \ 
    61    --auth *,/path/to/users.htdigest,mycompany.com \ 
     114   --auth="*",/path/to/users.htdigest,mycompany.com \ 
    62115   /path/to/project1 /path/to/project2 
    63116}}} 
    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 以外の環境でパスワードを生成する == 
     117`-s` パラメータを使用すると、一つの Trac environment をドメインのルートとして提供するようになり、プロジェクト名として `*` を使用せねばなりません。 
     118 
     119== htdigest パスワードファイルの設定方法 == #Howtosetupanhtdigestpasswordfile 
     120 
     121もし、 Apache がインストールされているなら、パスワードファイルを生成するのに、 htdigest コマンドを使用することができます。 'htdigest' とタイプして使用方法を見るか、詳細な使用方法を見るために Apache のマニュアルの [http://httpd.apache.org/docs/2.0/programs/htdigest.html このページ] を読んでください。ユーザを作成するたびに、パスワードを入力するように求められます。パスワードファイルの名前には好きな名前をつけることができますが、 `users.htdigest` というような名前にしておけば、ファイルに何が含まれているかを覚えておけるでしょう。このファイルは <projectname>/conf フォルダに [TracIni trac.ini] ファイルと一緒に置いておくとよいでしょう。 
     122 
     123引数 --auth なしで tracd をスタートできることに注意して下さい。ただし、 ''ログイン'' (英語版では ''Login'') リンクをクリックするとエラーになります。 
     124 
     125== Apache 以外の環境でパスワードを生成する == #GeneratingPasswordsWithoutApache 
    72126 
    73127もし Apache が使用できない場合でも、簡単な Python スクリプトでパスワードを生成できます: 
    74128 
    75129{{{ 
     130#!python 
    76131from optparse import OptionParser 
    77 import md5 
     132# The md5 module is deprecated in Python 2.5 
     133try: 
     134    from hashlib import md5 
     135except ImportError: 
     136    from md5 import md5 
     137realm = 'trac' 
    78138 
    79139# build the options 
     
    84144parser.add_option("-p", "--password",action="store", dest="password", type = "string", 
    85145                  help="the password to use") 
     146parser.add_option("-r", "--realm",action="store", dest="realm", type = "string", 
     147                  help="the realm in which to create the digest") 
    86148(options, args) = parser.parse_args() 
    87149 
     
    89151if (options.username is None) or (options.password is None): 
    90152   parser.error("You must supply both the username and password") 
     153if (options.realm is not None): 
     154   realm = options.realm 
    91155    
    92156# Generate the string to enter into the htdigest file 
    93 realm = 'trac' 
    94 kd = lambda x: md5.md5(':'.join(x)).hexdigest() 
     157kd = lambda x: md5(':'.join(x)).hexdigest() 
    95158print ':'.join((options.username, realm, kd([options.username, realm, options.password]))) 
    96159}}} 
    97160 
    98 Note: もし tracd を --basic-auth ではなくて、 --auth オプションを使用して起動するときに、上記のスクリプトを使わないといけないとしたら --auth の値に 'trac' を( シングルクォートなしで ) 指定し、レルムを設定しなければなりません。( 上記スクリプトを trac-digest.py として保存したとします) 
     161Note: もし tracd を --basic-auth ではなくて、 --auth オプションを使用して起動するときに、上記のスクリプトを使わないといけないとしたら --auth の値に 'trac' を(シングルクォートなしで) 指定し、レルムを設定しなければなりません。(上記スクリプトを trac-digest.py として保存したとします) 
    99162 
    100163{{{ 
    101164python 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 === 静的なリソースを扱う === 
     165tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name 
     166}}} 
     167 
     168Note: --basic-auth を使用したければ、 .htpasswd ファイルを作成するのに Apache サーバの htpasswd ツールを使用する必要があります。 他の部分についてはダイジェスト認証を行う場合とほとんど同じ方法です。しかしレルムには必ず empty 値 (すなわち、パス後のカンマのみ) を指定するようにしてください。 Windows で使用する場合は必ず -m オプションを使用してください。 (*nix ではテストしなかったので、その場合は不明です) Apache がない環境では、 [http://trac.edgewall.org/browser/tags/trac-0.11b2/contrib/htpasswd.py htpasswd.py] を使うとよいでしょう。 (このスクリプトは `crypt` か `fcrypt` モジュールが必要です; ソースのコメントに詳細が書いてあります。) 
     169 
     170md5sum ユーティリティを使用するとダイジェストパスワードを作成することができます: 
     171{{{ 
     172 $ printf "${user}:trac:${password}" | md5sum - >>user.htdigest 
     173}}} 
     174'to-file' は手で編集が必要です。行末の " -" を削除し、行頭に "${user}:trac:" を追加してください。 
     175 
     176== Tips == #Tips 
     177 
     178=== 静的なリソースを扱う === #Servingstaticcontent 
    108179 
    109180もし、 `tracd` が単一のプロジェクトのみを扱う Web サーバだとしたら、 
     
    115186 
    116187例: ファイル名が `$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]` と書くことができます。 
     188対応する URL は `/<project_name>/chrome/site/software-0.1.tar.gz` となります 
     189Wiki には、相対リンクシンタックスを使用して、  
     190`[/<project_name>/chrome/site/software-0.1.tar.gz]` と書くことができます。 (訳注: `[/chrome/site/software-0.1.tar.gz]` が正しい) 
    120191 
    121192Trac の開発バージョンでは新しく `htdocs:` に対応します。 TracLinks は 
     
    123194`htdocs:software-0.1.tar.gz` と書くことができます。 
    124195 
     196=== Apache の書き換え規則を使用する === #Usingapacherewriterules 
     197Apache のビハインドで tracd を使用すると、いくつかの状況で不正なホストまたはプロトコルに URL をリダイレクトされる問題が発生するかもしれません。この場合 (この場合だけ) `[trac] use_base_url_for_redirect` を `true` に設定することができます。これによって Trac がやむを得ず `[trac] base_url` の値を使用するためリダイレクトを行います。 
     198 
     199=== 検索パスとは別のベースパス (/) === #Servingadifferentbasepaththan 
     200Tracd は、プロジェクト毎に異なるベース URL 、および /<project> をサポートします。コマンドは以下の通りです。 
     201{{{ 
     202 $ tracd --base-path=/some/path 
     203}}} 
     204 
    125205---- 
    126 See also: TracInstall, TracCgi, TracModPython, TracGuide 
    127  
    128 ---- 
    129 '''Translation:''' 
    130  * [https://opensvn.csie.org/traccgi/trac_rus/wiki/StandAloneTracForTeapot Russian] (перевод на Русский) 
     206See also: TracInstall, TracCgi, TracModPython, TracGuide, [http://trac.edgewall.org/wiki/TracOnWindowsStandalone?version=13#RunningTracdasservice tracd.exe を Windows のサービスとして起動する]