さくらインターネットで Subversion + Trac
2007-07-18
ここ数日 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つのプラグインを入れる。
- WebAdminPlugin (Trac0.11からは標準添付になるらしい)
- AccountManagerPlugin
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 が提供する管理者画面にアクセスできるようになる。 管理者画面でユーザを登録する。
登録できたら、管理者権限をそのユーザに限定する。 ちなみに、ユーザ名の代わりに 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 のバックアップを取っておくことかな。 どちらか片方が消えたとしてもシャレにならないので…。