Changes between Initial Version and Version 1 of TracStandalone


Ignore:
Timestamp:
2010/10/12 00:14:07 (14 years ago)
Author:
trac
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TracStandalone

    v1 v1  
     1= Tracd = #Tracd 
     2 
     3Tracd は軽量なスタンドアロンの Trac web サーバです。 
     4Tracd は様々な場面で使用することができます。テストや開発用のサーバからロードバランサとして使用されているもう一つのウェブサーバの後段に複数のプロセスを配置するときなどに使われます。 
     5 
     6== 利点 == #Pros 
     7 
     8 * 依存性が低い: apache その他 web サーバをインストールする必要がありません。 
     9 * 速い: [wiki:TracModPython mod_python] バージョンと同じくらい速いでしょう。 ([wiki:TracCgi CGI] よりはずっと速い)。そして、 バージョン 0.12 以降では、デフォルトで HTTP のバージョン 1.1 が使えるようになりました。 
     10 * 自動リロード: 開発のために、 Tracd は ''auto_reload'' モードを使用しています。そのため、コード ( Trac 自身またはプラグインのコード ) を更新したときに、自動的にサーバが再起動します。 
     11 
     12== 欠点 == #Cons 
     13 
     14 * 機能が少ない: Tracd に実装されている web サーバはとてもシンプルで、 Apache httpd のように拡張性のある設定ができません。 
     15 * ネイティブで HTTPS に対応しない: 代わりに [http://www.rickk.com/sslwrap/ sslwrap] または 
     16   [http://trac.edgewall.org/wiki/STunnelTracd stunnel -- tracd と stunnel を使うためのチュートリアル] または Apache の mod_proxy を使用します。 
     17 
     18== 使用例 == #Usageexamples 
     19 
     20単一のプロジェクトをポート 8080 でホストします。 (http://localhost:8080/) 
     21{{{ 
     22 $ tracd -p 8080 /path/to/project 
     23}}} 
     24厳密に言うと、この状態では Trac は ''localhost のみ'' ではなく、ネットワーク越しの全員からアクセス可能になっています。 ''--hostname'' オプションを使用すると接続元を制限できます。 
     25{{{ 
     26 $ tracd --hostname=localhost -p 8080 /path/to/project 
     27}}} 
     28複数のプロジェクトをホストする場合はこうです (http://localhost:8080/project1/ と http://localhost:8080/project2/) 
     29{{{ 
     30 $ tracd -p 8080 /path/to/project1 /path/to/project2 
     31}}} 
     32 
     33Trac は異なるプロジェクト間での URL の一意性を保つために、パスの一番最後の文字列 (訳注: basename) を使用するため、プロジェクト間でパスの一番最後の部分を同じにすることは出来ません。 
     34もし、 `/project1/path/to` と `/project2/path/to` を同時に指定した場合、二つ目のプロジェクトだけしか見えなくなります。 
     35 
     36複数のプロジェクトを動かすもう一つの方法は、 `-e` オプションで親ディレクトリを指定し、サブディレクトリに TracEnvironment を配置します。上記の例は以下のように書き換えられます: 
     37{{{ 
     38 $ tracd -p 8080 -e /path/to 
     39}}} 
     40 
     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 
     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 
     74 
     75tracd は Apache の .htpasswd ファイルを使用できます: 
     76 
     77.htpasswd ファイルは htpasswd コマンドを使用して作成します: 
     78 
     79{{{ 
     80 $ htpasswd -c /path/to/env/.htpasswd username 
     81}}} 
     82ユーザを追加する場合は以下の通りです: 
     83{{{ 
     84 $ htpasswd /path/to/env/.htpasswd username2 
     85}}} 
     86そして、 tracd を開始します ( Windows では、--basic-auth の後の "=" を省略します ): 
     87{{{ 
     88tracd -p 8080 --basic-auth=environmentname,/fullpath/environmentname/.htpasswd,/fullpath/environmentname /fullpath/environmentname 
     89}}} 
     90 
     91 Trac のプロジェクトフォルダのフルパスである `/fullpath/environmentname` ではなく Trac のプロジェクトフォルダのディレクトリ名である `environmentname` を使用します。 下記のもう一つの例を参照して下さい。 
     92 
     93Tracd は基本認証とダイジェスト認証の両方に対応しています。デフォルトはダイジェスト認証です; 基本認証を使用するためには、以降の例で使用する `--auth` を `--basic-auth` に置き換えて下さい。 (ダイアログに使用する "レルム" を指定しなければなりません。 BASICAUTH には カンマ を末尾に指定した空の文字列を指定することができます。) 
     94 
     95  ''基本認証への対応はバージョン 0.9 以降で追加されました。'' 
     96 
     97認証の一般的なフォーマットは以下の通りです ( 基本認証を使用したい場合、 `--auth` と `--base-auth` を置き換えてください): 
     98 
     99{{{ 
     100 $ tracd -p port --auth="base_project_dir,password_file_path,realm" project_path 
     101}}} 
     102 
     103オプションについて: 
     104 
     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例: 
     114 
     115{{{ 
     116 $ tracd -p 8080 \ 
     117   --auth="project1,/path/to/passwordfile,mycompany.com" /path/to/project1 
     118}}} 
     119 
     120もちろん、パスワードファイルは 1 つ以上のプロジェクトで共有することができます。 
     121{{{ 
     122 $ tracd -p 8080 \ 
     123   --auth="project1,/path/to/passwordfile,mycompany.com" \ 
     124   --auth="project2,/path/to/passwordfile,mycompany.com" \ 
     125   /path/to/project1 /path/to/project2 
     126}}} 
     127 
     128パスワードファイルを共有するもう一つの方法として、プロジェクトの名前を指定するところで、 "*" を使用します: 
     129{{{ 
     130 $ tracd -p 8080 \ 
     131   --auth="*,/path/to/users.htdigest,mycompany.com" \ 
     132   /path/to/project1 /path/to/project2 
     133}}} 
     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 
     163 
     164もし、 Apache がインストールされているなら、パスワードファイルを生成するのに、 htdigest コマンドを使用することができます。 'htdigest' とタイプして使用方法を見るか、詳細な使用方法を見るために Apache のマニュアルの [http://httpd.apache.org/docs/2.0/programs/htdigest.html このページ] を読んでください。ユーザを作成するたびに、パスワードを入力するように求められます。パスワードファイルの名前には好きな名前をつけることができますが、 `users.htdigest` というような名前にしておけば、ファイルに何が含まれているかを覚えておけるでしょう。このファイルは <projectname>/conf フォルダに [TracIni trac.ini] ファイルと一緒に置いておくとよいでしょう。 
     165 
     166引数 --auth なしで tracd をスタートできることに注意して下さい。ただし、 ''ログイン'' (英語版では ''Login'') リンクをクリックするとエラーになります。 
     167 
     168=== Apache 以外の環境でパスワードを生成する === #GeneratingPasswordsWithoutApache 
     169 
     170もし Apache が使用できない場合でも、簡単な Python スクリプトでパスワードを生成できます: 
     171 
     172{{{ 
     173#!python 
     174from optparse import OptionParser 
     175# The md5 module is deprecated in Python 2.5 
     176try: 
     177    from hashlib import md5 
     178except ImportError: 
     179    from md5 import md5 
     180realm = 'trac' 
     181 
     182# build the options 
     183usage = "usage: %prog [options]" 
     184parser = OptionParser(usage=usage) 
     185parser.add_option("-u", "--username",action="store", dest="username", type = "string", 
     186                  help="the username for whom to generate a password") 
     187parser.add_option("-p", "--password",action="store", dest="password", type = "string", 
     188                  help="the password to use") 
     189parser.add_option("-r", "--realm",action="store", dest="realm", type = "string", 
     190                  help="the realm in which to create the digest") 
     191(options, args) = parser.parse_args() 
     192 
     193# check options 
     194if (options.username is None) or (options.password is None): 
     195   parser.error("You must supply both the username and password") 
     196if (options.realm is not None): 
     197   realm = options.realm 
     198    
     199# Generate the string to enter into the htdigest file 
     200kd = lambda x: md5(':'.join(x)).hexdigest() 
     201print ':'.join((options.username, realm, kd([options.username, realm, options.password]))) 
     202}}} 
     203 
     204Note: もし tracd を --basic-auth ではなくて、 --auth オプションを使用して起動するときに、上記のスクリプトを使わないといけないとしたら --auth の値に 'trac' を(シングルクォートなしで) 指定し、レルムを設定しなければなりません。(上記スクリプトを trac-digest.py として保存したとします) 
     205 
     206{{{ 
     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` モジュールを必要とします; ソースコード内のコメントに詳細が書かれています。) 
     213 
     214md5sum ユーティリティを使用するとダイジェストパスワードを作成することができます: 
     215{{{ 
     216 $ printf "${user}:trac:${password}" | md5sum - >>user.htdigest 
     217}}} 
     218'to-file' は手で編集が必要です。行末の " -" を削除し、行頭に "${user}:trac:" を追加してください。 
     219 
     220== Tips == #Tips 
     221 
     222=== 静的なリソースを扱う === #Servingstaticcontent 
     223 
     224もし、 `tracd` が単一のプロジェクトのみを扱う Web サーバだとしたら、 
     225静的なリソースを割り当てるのに使用することができます。 
     226(tar アーカイブ, Doxygen ドキュメントなど) 
     227 
     228この静的なリソースは `$TRAC_ENV/htdocs` フォルダに置き、 
     229`<project_URL>/chrome/site/...` という URL でアクセスします。 
     230 
     231例: ファイル名が `$TRAC_ENV/htdocs/software-0.1.tar.gz` だったとき、 
     232対応する URL は `/<project_name>/chrome/site/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 で追加されました。'' 
     236 
     237=== Apache の書き換え規則を使用する === #Usingapacherewriterules 
     238Apache のビハインドで tracd を使用すると、いくつかの状況で不正なホストまたはプロトコルに URL をリダイレクトされる問題が発生するかもしれません。この場合 (この場合だけ) `[trac] use_base_url_for_redirect` を `true` に設定することができます。これによって Trac がやむを得ず `[trac] base_url` の値を使用するためリダイレクトを行います。 
     239 
     240=== 検索パスとは別のベースパス (/) === #Servingadifferentbasepaththan 
     241Tracd は、プロジェクト毎に異なるベース URL 、および /<project> をサポートします。コマンドは以下の通りです。 
     242{{{ 
     243 $ tracd --base-path=/some/path 
     244}}} 
     245 
     246---- 
     247See also: TracInstall, TracCgi, TracModPython, TracGuide, [trac:TracOnWindowsStandalone?version=13#RunningTracdasservice Running tracd.exe as a Windows service], [trac:TracOnWindowsIisAjp], [trac:TracNginxRecipe]