Version 1 (modified by 18 years ago) ( diff ) | ,
---|
Tracd
Tracd は軽量なスタンドアロンの Trac web サーバです。ほとんどのケースでは CGI よりセットアップが簡単で、処理速度も速くなります。
利点
- 依存性が低い: apache その他 web サーバをインストールする必要がありません。
- 速い: mod_python バージョンと同じくらい速いでしょう。 (CGI よりはずっと速い)。
- 自動リロード: 開発のために、 Tracd は auto_reload モードを使用しています。そのため、コード ( Trac 自身またはプラグインのコード ) を更新したときに、自動的にサーバが再起動します。
欠点
- 機能が少ない: Tracd に実装されている web サーバはとてもシンプルで、 Apache HTTPD のように拡張性のある設定ができません。
- ネイティブで HTTPS に対応しない: 代わりに sslwrap または stunnel -- tracd と stunnel を使うためのチュートリアル または Apache の mod_proxy を使用します。
使用例
ポート 8080 に単一のプロジェクトを作成します。 (http://localhost:8080/)
$ tracd -p 8080 /path/to/project
複数のプロジェクト(http://localhost:8080/project1/ と http://localhost:8080/project2/)
$ tracd -p 8080 /path/to/project1 /path/to/project2
Trac は異なるプロジェクト間の URL の一意性を保つために、パスの一番最後の文字列を使用するため、プロジェクト間でパスの一番最後の部分を同じにすることは出来ません。
もし、 /project1/path/to
と /project2/path/to
を同時に指定した場合、二つ目のプロジェクトだけしか見えなくなります。
複数のプロジェクトを動かすもう一つの方法は、 -e
オプションで親ディレクトリを指定し、サブディレクトリに TracEnvironment を配置します。上記の例は以下のように書き換えられます:
$ tracd -p 8080 -e /path/to
認証を使用する
Tracd は基本認証とダイジェスト認証の両方に対応しています。デフォルトはダイジェスト認証です; 基本認証を使用するためには、以降の例で使用する --auth
を --basic-auth
に置き換え、レルムの指定を削除して下さい。
基本認証への対応はバージョン 0.9 以降で追加されました。
ファイル /path/to/users.htdigest
に project1 のユーザアカウントをレルム "mycompany.com" として保持している場合、以下に示すコマンドラインで tracd を起動します:
$ tracd -p 8080 --auth project1,/path/to/users.htdigest,mycompany.com /path/to/project1
Note: --auth
オプションで指定するプロジェクトの "名前" はそのプロジェクトの TracEnvironment ディレクトリの basename です。
もちろん、ダイジェストファイルは複数のプロジェクト間で共有することが出来ます:
$ tracd -p 8080 \ --auth project1,/path/to/users.htdigest,mycompany.com \ --auth project2,/path/to/users.htdigest,mycompany.com \ /path/to/project1 /path/to/project2
ダイジェストファイルを共有するもうひとつの方法は、プロジェクトの名前に "*" を指定することです:
$ tracd -p 8080 \ --auth *,/path/to/users.htdigest,mycompany.com \ /path/to/project1 /path/to/project2
htdigest パスワードファイルの設定方法
もし、 Apache がインストールされているなら、パスワードファイルを生成するのに、 htdigest コマンドを使用することができます。 'htdigest' とタイプして使用方法を見るか、詳細な使用方法を見るために Apache のマニュアル このページ を読んでください。ユーザを生成するたびに、パスワードを入力するように求められます。パスワードファイルの名前には好きな名前をつけることができますが、 users.htdigest
というような名前にしておけば、ファイルに何が含まれているかを覚えておけるでしょう。指示通り、それを <projectname>/conf フォルダに trac.ini ファイルと一緒において下さい。
引数 --auth なしで tracd をスタートできることに注意して下さい。ただし、 ログイン リンクをクリックするとエラーになるでしょう。
Apache 以外の環境でパスワードを生成する
もし Apache が使用できない場合でも、簡単な Python スクリプトでパスワードを生成できます:
from optparse import OptionParser import md5 # build the options usage = "usage: %prog [options]" parser = OptionParser(usage=usage) parser.add_option("-u", "--username",action="store", dest="username", type = "string", help="the username for whom to generate a password") parser.add_option("-p", "--password",action="store", dest="password", type = "string", help="the password to use") (options, args) = parser.parse_args() # check options if (options.username is None) or (options.password is None): parser.error("You must supply both the username and password") # Generate the string to enter into the htdigest file realm = 'trac' kd = lambda x: md5.md5(':'.join(x)).hexdigest() print ':'.join((options.username, realm, kd([options.username, realm, options.password])))
Note: もし tracd を --basic-auth ではなくて、 --auth オプションを使用して起動するときに、上記のスクリプトを使わないといけないとしたら --auth の値に 'trac' を( シングルクォートなしで ) 指定し、レルムを設定しなければなりません。( 上記スクリプトを trac-digest.py として保存したとします)
python trac-digest.py -u username -p password >> c:\digest.txt python tracd --port 8000 --auth proj_name,c:\digest.txt,trac c:\path\to\proj_name
Tips
静的なリソースを扱う
もし、 tracd
が単一のプロジェクトのみを扱う Web サーバだとしたら、
静的なリソースを割り当てるのに使用することができます。
(tar アーカイブ, Doxygen ドキュメントなど)
この静的なリソースは $TRAC_ENV/htdocs
フォルダに置き、
<project_URL>/chrome/site/...
という URL でアクセスします。
例: ファイル名が $TRAC_ENV/htdocs/software-0.1.tar.gz
だったとき、
対応する URL は /<project_name>/chrome/site/software-0.1.tar.gz
となるでしょう。
そして、wiki には、相対リンクシンタックスを使用して、
[/<project_name>/chrome/site/software-0.1.tar.gz]
と書くことができます。
Trac の開発バージョンでは新しく htdocs:
に対応します。 TracLinks は
上記のようなシンタックスになります。これによって、上記の例のリンクはただ単に
htdocs:software-0.1.tar.gz
と書くことができます。
See also: TracInstall, TracCgi, TracModPython, TracGuide
Translation:
- Russian (перевод на Русский)