Changes between Version 1 and Version 2 of TracStandalone


Ignore:
Timestamp:
Oct 12, 2010, 8:57:27 PM (14 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracStandalone

    v1 v2  
    1 = Tracd =
    2 
    3 Tracd は軽量なスタンドアロンの Trac Web サーバです。ほとんどのケースでは [wiki:TracCgi CGI] よりセットアップが簡単で、処理速度も速くなります。
     1= Tracd = #Tracd
     2
     3Tracd は軽量なスタンドアロンの Trac web サーバです。
     4Tracd は様々な場面で使用することができます。テストや開発用のサーバからロードバランサとして使用されているもう一つのウェブサーバの後段に複数のプロセスを配置するときなどに使われます。
    45
    56== 利点 == #Pros
    67
    7  * 依存性が低い: Apache その他 Web サーバをインストールする必要がありません。
    8  * 速い: [wiki:TracModPython mod_python] バージョンと同じくらい速いでしょう。 ([wiki:TracCgi CGI] よりはずっと速い)。
    9  * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード (Trac 自身またはプラグインのコード) を更新したときに、自動的にサーバが再起動します。
     8 * 依存性が低い: apache その他 web サーバをインストールする必要がありません。
     9 * 速い: [wiki:TracModPython mod_python] バージョンと同じくらい速いでしょう。 ([wiki:TracCgi CGI] よりはずっと速い)。そして、 バージョン 0.12 以降では、デフォルトで HTTP のバージョン 1.1 が使えるようになりました。
     10 * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード ( Trac 自身またはプラグインのコード ) を更新したときに、自動的にサーバが再起動します。
    1011
    1112== 欠点 == #Cons
    1213
    13  * 機能が少ない: Tracd に実装されている Web サーバはとてもシンプルで、 Apache HTTPD のように拡張性のある設定ができません。
     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 を使用します。
     
    4041Windows でサーバを終了するには必ず {{{CTRL-BREAK}}} を使用してください。 -- {{{CTRL-C}}} を使用すると Python のプロセスがバックグラウンドで起動したままになるでしょう。
    4142
    42 [http://www.google.com/search?q=srvany.exe SRVANY] などのユーティリティを使用して Windows のサービスとして起動する場合、サービスの停止や再起動では Python プロセスが残留してしまいます。代わりにシステムを再起動してください。
    43 
    44 
    45 == 認証を使用する == #UsingAuthentication
     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
     62Windows 7 ユーザは、 srvany.exe は使用できないかもしれません。代わりに [http://www.google.com/search?q=winserv.exe WINSERV] ユーティリティを使用して、起動してください:
     63{{{
     64"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>"
     65
     66net start tracd
     67}}}
     68
     69=== オプション 2 === #Option2
     70
     71[http://trac-hacks.org/ Trac Hacks] より [http://trac-hacks.org/wiki/WindowsServiceScript WindowsServiceScript] を入手して下さい。 Trac のサービスを インストール、削除、開始、停止などできます。
     72
     73==== 認証を使用する ==== #UsingAuthentication
    4674
    4775tracd は Apache の .htpasswd ファイルを使用できます:
     
    5078
    5179{{{
    52 sudo htpasswd -c /path/to/env/.htpasswd username
     80 $ htpasswd -c /path/to/env/.htpasswd username
    5381}}}
    5482ユーザを追加する場合は以下の通りです:
    5583{{{
    56 sudo htpasswd /path/to/env/.htpasswd username2
    57 }}}
    58 tracd の起動オプションにファイルを指定してください:
     84 $ htpasswd /path/to/env/.htpasswd username2
     85}}}
     86そして、 tracd を開始します ( Windows では、--basic-auth の後の "=" を省略します ):
    5987{{{
    6088tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname
    6189}}}
    6290
    63 
    64 Tracd は基本認証とダイジェスト認証の両方に対応しています。デフォルトはダイジェスト認証です; 基本認証を使用するためには、以降の例で使用する `--auth` を `--basic-auth` に置き換えて下さい。 (ダイアログに使用する "realm" を指定しなければなりません。 BASICAUTH には カンマ を末尾に指定した空の文字列を指定することができます。)
     91 Trac のプロジェクトフォルダのフルパスである `/fullpath/environmentname` ではなく Trac のプロジェクトフォルダのディレクトリ名である `environmentname` を使用します。 下記のもう一つの例を参照して下さい。
     92
     93Tracd は基本認証とダイジェスト認証の両方に対応しています。デフォルトはダイジェスト認証です; 基本認証を使用するためには、以降の例で使用する `--auth` を `--basic-auth` に置き換えて下さい。 (ダイアログに使用する "レルム" を指定しなければなりません。 BASICAUTH には カンマ を末尾に指定した空の文字列を指定することができます。)
    6594
    6695  ''基本認証への対応はバージョン 0.9 以降で追加されました。''
    6796
    68 認証を使用するための一般的なコマンドは以下の通りです:
    69 
    70 {{{
    71  $ tracd -p port --auth=base_project_dir,password_file_path,realm project_path
     97認証の一般的なフォーマットは以下の通りです ( 基本認証を使用したい場合、 `--auth` と `--base-auth` を置き換えてください):
     98
     99{{{
     100 $ tracd -p port --auth="base_project_dir,password_file_path,realm" project_path
    72101}}}
    73102
    74103オプションについて:
    75104
    76  * '''base_project_dir''' はプロジェクトのベースディレクトリ; Note: これはプロジェクト名ではありません。そして Windows の環境においても、大文字と小文字を区別します。
    77  * '''password_file_path''' パスワードファイルのパス
    78  * '''realm''' レルム
    79  * '''project_path''' プロジェクトのパス
    80 
    81 使用例:
     105 * '''base_project_dir''': 下記の通りプロジェクトのベースのディレクトリを特定する:
     106   * 複数のプロジェクトを立てているとき: `project_path` への ''相対パス''
     107   * 1 つのみプロジェクトを立てているとき (`-s` オプション使用): プロジェクトのディレクトリの名前
     108 絶対パスを使用しないで下さい。 ''Note:'' このパラメータは、 Windows の環境であっても大文字小文字を区別します。
     109 * '''password_file_path''': パスワードファイルへのパス
     110 * '''realm''': realm の名前 ( なんでも指定できます )
     111 * '''project_path''': プロジェクトへのパス
     112
     113例:
    82114
    83115{{{
    84116 $ tracd -p 8080 \
    85    --auth=project1,/path/to/users.htdigest,mycompany.com /path/to/project1
    86 }}}
    87 もちろん、ダイジェストファイルは複数のプロジェクト間で共有することが出来ます:
     117   --auth="project1,/path/to/passwordfile,mycompany.com" /path/to/project1
     118}}}
     119
     120もちろん、パスワードファイルは 1 つ以上のプロジェクトで共有することができます。
    88121{{{
    89122 $ tracd -p 8080 \
    90    --auth=project1,/path/to/users.htdigest,mycompany.com \
    91    --auth=project2,/path/to/users.htdigest,mycompany.com \
     123   --auth="project1,/path/to/passwordfile,mycompany.com" \
     124   --auth="project2,/path/to/passwordfile,mycompany.com" \
    92125   /path/to/project1 /path/to/project2
    93126}}}
    94127
    95 ダイジェストファイルを共有するもうひとつの方法は、プロジェクトの名前に "*"
    96 を指定することです:
     128パスワードファイルを共有するもう一つの方法として、プロジェクトの名前を指定するところで、 "*" を使用します:
    97129{{{
    98130 $ tracd -p 8080 \
    99    --auth="*",/path/to/users.htdigest,mycompany.com \
     131   --auth="*,/path/to/users.htdigest,mycompany.com" \
    100132   /path/to/project1 /path/to/project2
    101133}}}
    102 `-s` パラメータを使用すると、一つの Trac environment をドメインのルートとして提供するようになり、プロジェクト名として `*` を使用せねばなりません。
    103 
    104 == htdigest パスワードファイルの設定方法 == #Howtosetupanhtdigestpasswordfile
     134
     135=== htpasswd パスワードを使用する === #Usingahtpasswdpasswordfile
     136このセクションでは、 `tracd` と Apache の .htpasswd ファイルの使用方法について記述します。
     137
     138Apache の `htpasswd` コマンドを使用して、 .htpasswd ファイルを作成します。 ( Apache を使用せずにこれらのファイルを作成する方法については [#GeneratingPasswordsWithoutApache 下記] を参照して下さい):
     139
     140{{{
     141 $ sudo htpasswd -c /path/to/env/.htpasswd username
     142}}}
     143そしてユーザを追加します。
     144{{{
     145 $ sudo htpasswd /path/to/env/.htpasswd username2
     146}}}
     147
     148そして、 `tracd` をこのように起動します:
     149
     150{{{
     151 $ tracd -p 8080 --basic-auth="projectdirname,/fullpath/environmentname/.htpasswd,realmname" /fullpath/environmentname
     152}}}
     153
     154例:
     155
     156{{{
     157 $ tracd -p 8080 --basic-auth="testenv,/srv/tracenv/testenv/.htpasswd,My Test Env" /srv/tracenv/testenv
     158}}}
     159
     160''Note:'' いくつかのプラットフォーム (OpenBSD) では、htpasswd に "-m" をパラメータで渡す必要があるかもしれません。
     161
     162=== htdigest パスワードファイルの設定方法 === #Usingahtdigestpasswordfile
    105163
    106164もし、 Apache がインストールされているなら、パスワードファイルを生成するのに、 htdigest コマンドを使用することができます。 'htdigest' とタイプして使用方法を見るか、詳細な使用方法を見るために Apache のマニュアルの [http://httpd.apache.org/docs/2.0/programs/htdigest.html このページ] を読んでください。ユーザを作成するたびに、パスワードを入力するように求められます。パスワードファイルの名前には好きな名前をつけることができますが、 `users.htdigest` というような名前にしておけば、ファイルに何が含まれているかを覚えておけるでしょう。このファイルは <projectname>/conf フォルダに [TracIni trac.ini] ファイルと一緒に置いておくとよいでしょう。
     
    108166引数 --auth なしで tracd をスタートできることに注意して下さい。ただし、 ''ログイン'' (英語版では ''Login'') リンクをクリックするとエラーになります。
    109167
    110 == Apache 以外の環境でパスワードを生成する == #GeneratingPasswordsWithoutApache
     168=== Apache 以外の環境でパスワードを生成する === #GeneratingPasswordsWithoutApache
    111169
    112170もし Apache が使用できない場合でも、簡単な Python スクリプトでパスワードを生成できます:
     
    147205
    148206{{{
    149 python trac-digest.py -u username -p password >> c:\digest.txt
    150 tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name
    151 }}}
    152 
    153 Note: --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` モジュールが必要です; ソースのコメントに詳細が書いてあります。)
     207 $ python trac-digest.py -u username -p password >> c:\digest.txt
     208 $ tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name
     209}}}
     210
     211
     212Note: --basic-auth を使用したければ、 .htpasswd ファイルを作成するのに Apache サーバの htpasswd ツールを使用する必要があります。 他の部分についてはダイジェスト認証を行う場合とほとんど同じ方法です。しかしレルムには必ず empty 値 (すなわち、パス後のカンマのみ) を指定するようにしてください。 確実に -m オプションを使用して下さい。もし Apache を持っていない場合、 [trac:source:/tags/trac-0.11/contrib/htpasswd.py htpasswd.py] が役に立つでしょう。 ( このスクリプトは、 `crypt` または `fcrypt` モジュールを必要とします; ソースコード内のコメントに詳細が書かれています。)
    154213
    155214md5sum ユーティリティを使用するとダイジェストパスワードを作成することができます:
    156215{{{
    157 echo -e "${user}:trac:${password}\c" | md5sum - >>to-file
    158 }}}
    159 'to-file' は手で編集が必要です。行末の " -" を削除し、行頭に "${user}:trac:" を追加してください。詳細は [http://trac.edgewall.org/attachment/wiki/TracStandalone/trac-digest-corrected.sh trac-digest-corrected.sh] を参照してください。 (訳注: realm が `trac` に固定されていますので、実際には改造しないと使えないでしょう)
     216 $ printf "${user}:trac:${password}" | md5sum - >>user.htdigest
     217}}}
     218'to-file' は手で編集が必要です。行末の " -" を削除し、行頭に "${user}:trac:" を追加してください。
    160219
    161220== Tips == #Tips
     
    172231例: ファイル名が `$TRAC_ENV/htdocs/software-0.1.tar.gz` だったとき、
    173232対応する URL は `/<project_name>/chrome/site/software-0.1.tar.gz` となります。
    174 Wiki には、相対リンクシンタックスを使用して、
    175 `[/<project_name>/chrome/site/software-0.1.tar.gz]` と書くことができます。 (訳注: `[/chrome/site/software-0.1.tar.gz]` が正しい)
    176 
    177 Trac の開発バージョンでは新しく `htdocs:` に対応します。 TracLinks は
    178 上記のようなシンタックスになります。これによって、上記の例のリンクはただ単に
    179 `htdocs:software-0.1.tar.gz` と書くことができます。
     233代わりに `htdocs:software-0.1.tar.gz` (TracLinks のシンタックス) や `[/<project_name>/chrome/site/software-0.1.tar.gz]` (相対リンクのシンタックス) で記述することができます。
     234
     235 ''TracLinks における `htdocs:` のサポートは Trac のバージョン 0.10 で追加されました。''
    180236
    181237=== Apache の書き換え規則を使用する === #Usingapacherewriterules
     
    185241Tracd は、プロジェクト毎に異なるベース URL 、および /<project> をサポートします。コマンドは以下の通りです。
    186242{{{
    187 tracd --base-path=/some/path
     243 $ tracd --base-path=/some/path
    188244}}}
    189245
    190246----
    191 See also: TracInstall, TracCgi, TracModPython, TracGuide, [http://trac.edgewall.org/wiki/TracOnWindowsStandalone?version=13#RunningTracdasservice tracd.exe を Windows のサービスとして起動する]
     247See also: TracInstall, TracCgi, TracModPython, TracGuide, [trac:TracOnWindowsStandalone?version=13#RunningTracdasservice Running tracd.exe as a Windows service], [trac:TracOnWindowsIisAjp], [trac:TracNginxRecipe]