さくらインターネットで 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つのプラグインを入れる。
- 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 のバックアップを取っておくことかな。 どちらか片方が消えたとしてもシャレにならないので…。