XPressME Integration Kit

Trac

Initial Version から Version 1 における更新: TracStandalone

差分発生行の前後
Ignore:
Timestamp:
Oct 30, 2008, 4:53:49 PM (15 years 前)
Author:
trac (IP: 127.0.0.1)
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracStandalone

    v1 v1  
     1= Tracd = 
     2 
     3Tracd は軽量なスタンドアロンの Trac Web サーバです。ほとんどのケースでは [wiki:TracCgi CGI] よりセットアップが簡単で、処理速度も速くなります。 
     4 
     5== 利点 == #Pros 
     6 
     7 * 依存性が低い: Apache その他 Web サーバをインストールする必要がありません。 
     8 * 速い: [wiki:TracModPython mod_python] バージョンと同じくらい速いでしょう。 ([wiki:TracCgi CGI] よりはずっと速い)。 
     9 * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード (Trac 自身またはプラグインのコード) を更新したときに、自動的にサーバが再起動します。 
     10 
     11== 欠点 == #Cons 
     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== 使用例 == #Usageexamples 
     18 
     19単一のプロジェクトをポート 8080 でホストします。 (http://localhost:8080/) 
     20{{{ 
     21 $ tracd -p 8080 /path/to/project 
     22}}} 
     23厳密に言うと、この状態では Trac は ''localhost のみ'' ではなく、ネットワーク越しの全員からアクセス可能になっています。 ''--hostname'' オプションを使用すると接続元を制限できます。 
     24{{{ 
     25 $ tracd --hostname=localhost -p 8080 /path/to/project 
     26}}} 
     27複数のプロジェクトをホストする場合はこうです (http://localhost:8080/project1/ と http://localhost:8080/project2/) 
     28{{{ 
     29 $ tracd -p 8080 /path/to/project1 /path/to/project2 
     30}}} 
     31 
     32Trac は異なるプロジェクト間での URL の一意性を保つために、パスの一番最後の文字列 (訳注: basename) を使用するため、プロジェクト間でパスの一番最後の部分を同じにすることは出来ません。 
     33もし、 `/project1/path/to` と `/project2/path/to` を同時に指定した場合、二つ目のプロジェクトだけしか見えなくなります。 
     34 
     35複数のプロジェクトを動かすもう一つの方法は、 `-e` オプションで親ディレクトリを指定し、サブディレクトリに TracEnvironment を配置します。上記の例は以下のように書き換えられます: 
     36{{{ 
     37 $ tracd -p 8080 -e /path/to 
     38}}} 
     39 
     40Windows でサーバを終了するには必ず {{{CTRL-BREAK}}} を使用してください。 -- {{{CTRL-C}}} を使用すると Python のプロセスがバックグラウンドで起動したままになるでしょう。 
     41 
     42 
     43== 認証を使用する == #UsingAuthentication 
     44 
     45Using tracd with Apache .htpasswd files: 
     46 
     47To create a .htpasswd file using htpasswd: 
     48 
     49{{{ 
     50sudo htpasswd -c /path/to/env/.htpasswd username 
     51}}} 
     52then for additional users: 
     53{{{ 
     54sudo htpasswd /var/www/html/.htpasswd-users username2 
     55}}} 
     56then for starting the tracd: 
     57{{{ 
     58tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname 
     59}}} 
     60 
     61 
     62Tracd は基本認証とダイジェスト認証の両方に対応しています。デフォルトはダイジェスト認証です; 基本認証を使用するためには、以降の例で使用する `--auth` を `--basic-auth` に置き換えて下さい。 (ダイアログに使用する "realm" を指定しなければなりません。 BASICAUTH には カンマ を末尾に指定した空の文字列を指定することができます。) 
     63 
     64  ''基本認証への対応はバージョン 0.9 以降で追加されました。'' 
     65 
     66認証を使用するための一般的なコマンドは以下の通りです: 
     67 
     68{{{ 
     69 $ tracd -p port --auth=base_project_dir,password_file_path,realm project_path 
     70}}} 
     71 
     72オプションについて: 
     73 
     74 * '''base_project_dir''' はプロジェクトのベースディレクトリ; Note: これはプロジェクト名ではありません。そして Windows の環境においても、大文字と小文字を区別します。 
     75 * '''password_file_path''' パスワードファイルのパス 
     76 * '''realm''' レルム 
     77 * '''project_path''' プロジェクトのパス 
     78 
     79使用例: 
     80 
     81{{{ 
     82 $ tracd -p 8080 \ 
     83   --auth=project1,/path/to/users.htdigest,mycompany.com /path/to/project1 
     84}}} 
     85もちろん、ダイジェストファイルは複数のプロジェクト間で共有することが出来ます: 
     86{{{ 
     87 $ tracd -p 8080 \ 
     88   --auth=project1,/path/to/users.htdigest,mycompany.com \ 
     89   --auth=project2,/path/to/users.htdigest,mycompany.com \ 
     90   /path/to/project1 /path/to/project2 
     91}}} 
     92 
     93ダイジェストファイルを共有するもうひとつの方法は、プロジェクトの名前に "*"  
     94を指定することです: 
     95{{{ 
     96 $ tracd -p 8080 \ 
     97   --auth=*,/path/to/users.htdigest,mycompany.com \ 
     98   /path/to/project1 /path/to/project2 
     99}}} 
     100 
     101== htdigest パスワードファイルの設定方法 == #Howtosetupanhtdigestpasswordfile 
     102 
     103もし、 Apache がインストールされているなら、パスワードファイルを生成するのに、 htdigest コマンドを使用することができます。 'htdigest' とタイプして使用方法を見るか、詳細な使用方法を見るために Apache のマニュアルの [http://httpd.apache.org/docs/2.0/programs/htdigest.html このページ] を読んでください。ユーザを作成するたびに、パスワードを入力するように求められます。パスワードファイルの名前には好きな名前をつけることができますが、 `users.htdigest` というような名前にしておけば、ファイルに何が含まれているかを覚えておけるでしょう。このファイルは <projectname>/conf フォルダに [TracIni trac.ini] ファイルと一緒に置いておくとよいでしょう。 
     104 
     105引数 --auth なしで tracd をスタートできることに注意して下さい。ただし、 ''ログイン'' (英語版では ''Login'') リンクをクリックするとエラーになります。 
     106 
     107== Apache 以外の環境でパスワードを生成する == #GeneratingPasswordsWithoutApache 
     108 
     109もし Apache が使用できない場合でも、簡単な Python スクリプトでパスワードを生成できます: 
     110 
     111{{{ 
     112#!python 
     113from optparse import OptionParser 
     114import md5 
     115 
     116# build the options 
     117usage = "usage: %prog [options]" 
     118parser = OptionParser(usage=usage) 
     119parser.add_option("-u", "--username",action="store", dest="username", type = "string", 
     120                  help="the username for whom to generate a password") 
     121parser.add_option("-p", "--password",action="store", dest="password", type = "string", 
     122                  help="the password to use") 
     123(options, args) = parser.parse_args() 
     124 
     125# check options 
     126if (options.username is None) or (options.password is None): 
     127   parser.error("You must supply both the username and password") 
     128    
     129# Generate the string to enter into the htdigest file 
     130realm = 'trac' 
     131kd = lambda x: md5.md5(':'.join(x)).hexdigest() 
     132print ':'.join((options.username, realm, kd([options.username, realm, options.password]))) 
     133}}} 
     134 
     135Note: もし tracd を --basic-auth ではなくて、 --auth オプションを使用して起動するときに、上記のスクリプトを使わないといけないとしたら --auth の値に 'trac' を(シングルクォートなしで) 指定し、レルムを設定しなければなりません。(上記スクリプトを trac-digest.py として保存したとします) 
     136 
     137{{{ 
     138python trac-digest.py -u username -p password >> c:\digest.txt 
     139tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name 
     140}}} 
     141 
     142Note: --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` モジュールが必要です; ソースのコメントに詳細が書いてあります。) 
     143 
     144md5sum ユーティリティを使用するとダイジェストパスワードを作成することができます: 
     145{{{ 
     146echo -e "${user}:trac:${password}\c" | md5sum - >>to-file 
     147}}} 
     148'to-file' は手で編集が必要です。行末の " -" を削除し、行頭に "${user}:trac:" を追加してください。詳細は [http://trac.edgewall.org/attachment/wiki/TracStandalone/trac-digest-corrected.sh trac-digest-corrected.sh] を参照してください。 (訳注: realm が `trac` に固定されていますので、実際には改造しないと使えないでしょう) 
     149 
     150== Tips == #Tips 
     151 
     152=== 静的なリソースを扱う === #Servingstaticcontent 
     153 
     154もし、 `tracd` が単一のプロジェクトのみを扱う Web サーバだとしたら、 
     155静的なリソースを割り当てるのに使用することができます。 
     156(tar アーカイブ, Doxygen ドキュメントなど) 
     157 
     158この静的なリソースは `$TRAC_ENV/htdocs` フォルダに置き、 
     159`<project_URL>/chrome/site/...` という URL でアクセスします。 
     160 
     161例: ファイル名が `$TRAC_ENV/htdocs/software-0.1.tar.gz` だったとき、 
     162対応する URL は `/<project_name>/chrome/site/software-0.1.tar.gz` となります。 
     163Wiki には、相対リンクシンタックスを使用して、  
     164`[/<project_name>/chrome/site/software-0.1.tar.gz]` と書くことができます。 (訳注: `[/chrome/site/software-0.1.tar.gz]` が正しい) 
     165 
     166Trac の開発バージョンでは新しく `htdocs:` に対応します。 TracLinks は 
     167上記のようなシンタックスになります。これによって、上記の例のリンクはただ単に  
     168`htdocs:software-0.1.tar.gz` と書くことができます。 
     169 
     170=== Apache の書き換え規則を使用する === #Usingapacherewriterules 
     171Apache のビハインドで tracd を使用すると、いくつかの状況で不正なホストまたはプロトコルに URL をリダイレクトされる問題が発生するかもしれません。この場合 (この場合だけ) `[trac] use_base_url_for_redirect` を `true` に設定することができます。これによって Trac がやむを得ず `[trac] base_url` の値を使用するためリダイレクトを行います。 
     172 
     173=== 検索パスとは別のベースパス (/) === #Servingadifferentbasepaththan 
     174Tracd は、プロジェクト毎に異なるベース URL 、および /<project> をサポートします。コマンドは以下の通りです。 
     175{{{ 
     176tracd --base-path=/some/path 
     177}}} 
     178 
     179---- 
     180See also: TracInstall, TracCgi, TracModPython, TracGuide