«前の日記(2007-07-17 (火)) 最新 次の日記(2007-07-19 (木))»  

まちゅダイアリー


2007-07-18 (水)

さくらインターネットで Subversion + Trac

ここ数日 Trac の話をしておきながら、昔作成した Trac を活用していなかった。 改めて使うようにしよう。 使っていた Trac が 0.9.5 だったので、最新版の 0.10.4 へアップデートする。

事前準備

さくらインターネットにTracを構築するを参考に必要なライブラリを入れておく。

  • swig
  • Subversion
  • sqlite
  • pysqlite
  • clearsilver
  • docutils

Trac 0.10.4

まず、古いバージョンの Trac をリネームする。

$ cd $HOME/share
$ mv trac trac.0.94
$ cd $HOME/lib/python/site-packages
$ mv trac trac.0.94

次に日本語版をダウンロードしてインストールする。

$ cd src
$ wget http://www.i-act.co.jp/project/products/downloads/trac-0.10.4-ja-1.zip
$ unzip trac-0.10.4-ja-1.zip
$ cd trac-0.10.4-ja-1
$ ./setup.py build
$ ./setup.py install --prefix=$HOME

プラグインのインストール

Trac を Web から管理できるように、以下の2つのプラグインを入れる。

Trac0.10 に対応した WebAdminPlugin は Subversion でしか持ってこられないようになっているみたい。

$ svn co http://svn.edgewall.com/repos/trac/sandbox/webadmin/
$ cd webadmin/
$ ./setup.py build
$ ./setup.py install --prefix=$HOME

AccountManagerPlugin は easy_install で一発インストール可能だった。

easy_install --prefix=$HOME  http://trac-hacks.org/svn/accountmanagerplugin/0.10

Trac リポジトリの作成

※ Subversionのリポジトリは事前に作っておくこと。

$ svnadmin create $HOME/var/svn/public

trac-admin コマンドで Trac のリポジトリ (Subversion のリポジトリとは異なる) を作る。 ここでは、ホームディレクトリの var/trac/public に作成した。

$ mkdir -p $HOME/var/trac
$ cd $HOME/var/trac
$ trac-admin public initenv

以後の説明のために、リポジトリの場所を TRAC_HOME としておく。

$ export TRAC_HOME=$HOME/var/trac/public

trac.ini の編集

Trac の設定ファイルを編集する。

$ vi $TRAC_HOME/conf/trac.ini

差分は以下のようになった。

--- trac.ini.org        Wed Jul 18 20:53:25 2007
+++ trac.ini    Wed Jul 18 21:27:26 2007
@@ -1,5 +1,10 @@
 # -*- coding: utf-8 -*-

+[account-manager]
+htdigest_realm = TracRealm
+password_file = /home/xxxxxxxxx/var/trac/trac.htdigest
+password_store = HtDigestStore
+

上記は AccountManagerPlugin の設定。 trac.htdigest というファイルに Trac のログイン名とパスワードが格納される。

@@ -14,18 +19,27 @@
 max_diff_files = 0
 wiki_format_messages = true

+[components]
+trac.ticket.report.* = disabled
+acct_mgr.admin.accountmanageradminpage = enabled
+acct_mgr.htfile.htdigeststore = enabled
+acct_mgr.web_ui.accountmodule = enabled
+acct_mgr.web_ui.loginmodule = enabled
+acct_mgr.web_ui.registrationmodule = disabled
+trac.web.auth.loginmodule = disabled
+webadmin.* = enabled

上記の[components]では、それぞれのプラグインを有効にしている。

  • デフォルトのレポート機能を無効化
  • AccountManagerPlugin のログイン機能を有効(自動登録機能は無効)
  • デフォルトのログイン機能を無効化
  • WebAdminプラグインを有効
 [header_logo]
-alt =
+alt = www.machu.jp
 height = -1
-link = http://example.org/
-src = common/trac_banner.png
+link = http://www.machu.jp/
+src = /trac_common/logo.png
 width = -1

 [logging]
 log_file = trac.log
-# log_format = <set in global trac.ini>
-log_level = DEBUG
-log_type = none
+log_level = WARNING
+log_type = file

 [mimeviewer]
 enscript_modes = text/x-dylan:dylan:4
@@ -57,11 +71,11 @@
 use_tls = false

 [project]
-descr = My example project
+descr = machu's repository
 footer = Visit the Trac open source project at<br /><a href="http://trac.edgewall.org/">http://trac.edgewall.org/</a>
 icon = common/trac.ico
 name = machu's repository
-url = http://example.org/
+url = http://www.machu.jp/trac/

 [search]
 min_query_length = 3
@@ -86,17 +100,15 @@
 base_url =
 check_auth_ip = true
 database = sqlite:db/trac.db
-default_charset = iso-8859-15
+default_charset = utf-8
 default_handler = WikiModule
-htdocs_location =
+htdocs_location = /trac_common
 ignore_auth_case = false
 mainnav = wiki,timeline,roadmap,browser,tickets,newticket,search
 metanav = login,logout,settings,help,about

上記のように CGI で動かす場合は、 htdocs_location を設定しておくことが大切。 これが無いと、Tracで使っている画像やCSSやJavaScriptのファイルまで、CGI経由で取得することになる。 詳しくは、CGI として Trac をインストールするを参照。

権限の割り振り

Trac のデフォルト状態では、誰でも Wiki ページやチケットの作成が可能になっている。 さすがにこのご時勢だと SPAM の餌食になるのが目に見えているので、ユーザを登録してログインした人だけが操作できるようにしておく。

まず、全てのユーザに管理者権限をセットする(危険な状態なので、公開前の Trac のみで実施すること)。

$ trac-admin $TRAC_HOME permission add anonymous TRAC_ADMIN

この状態で Trac にアクセスすると、 WebAdminPlugin と AccountManagerPlugin が提供する管理者画面にアクセスできるようになる。 管理者画面でユーザを登録する。

AccountManagerPlugin (Trac)

登録できたら、管理者権限をそのユーザに限定する。 ちなみに、ユーザ名の代わりに authenticated とすると、ログインした全てのユーザが管理者権限を持つようになる。 イントラネットで使うときはこの設定でもいいかも。

$ trac-admin $TRAC_HOME permission add authenticated TRAC_ADMIN
$ trac-admin $TRAC_HOME permission remove anonymous TRAC_ADMIN

anonymous から管理者権限 (TRAC_ADMIN) を外すのを忘れないように注意。

こんな感じで作ったのがこの Trac 。 ロゴは Web2.0 - Logo Creatr で作成している。

そうそう。一番大切なのは Trac と Subversion のバックアップを取っておくことかな。 どちらか片方が消えたとしてもシャレにならないので…。