CORESERVER に trac を入れてみた
動作例はこんな感じ --> http://reguzy.jp/
基本的に TracDoc/SakuraInternet - HirobeのHack倉庫 - Trac を参考にしてます。
前提
virtual-python と easy_install が便利なので使う。easy_install でpysqlite を入れておく。
# virtual-python wget http://peak.telecommunity.com/dist/virtual-python.py python virtual-python # .bashrc touch ~/.bashrc echo 'export PYTHONPATH=~/lib/python2.4/site-packages' > ~/.bashrc echo 'export PATH=~/bin:$PATH' > ~/.bashrc #easy_install wget http://peak.telecommunity.com/dist/ez_setup.py python ez_setup.py # pysqlite easy_install pysqlite
以下、ダウンロードしたり make なんかは ~/tmp ディレクトリで行っている。インストール先とかはいいかげんなので、見直した方がいいかも。
Subversion Python バインディング
CORESERVER には Subversion がインストールされているんだけど、古いのと Python バインディングを入れる方法がわからなかったので、1.4 をインストールする。
swig (よく知らない)
cd ~/tmp wget http://jaist.dl.sourceforge.net/sourceforge/swig/swig-1.3.31.tar.gz gunzip swig-1.3.31.tar.gz tar xvf swig-1.3.31.tar cd SWIG-1.3.31 ./configure --prefix=$HOME/local make make install
Subversion & Python バインディング
cd ~/tmp wget http://subversion.tigris.org/downloads/subversion-1.4.4.tar.gz wget http://subversion.tigris.org/downloads/subversion-deps-1.4.4.tar.gz tar -xzvf subversion-1.4.4.tar.gz tar -xzvf subversion-deps-1.4.4.tar.gz cd subversion-1.4.4/apr ./configure --prefix=$HOME/local make make install cd ../apr-util ./configure --prefix=$HOME/local --with-apr=$HOME/local/bin/apr-config make make install cd ../ ./configure --prefix=$HOME/local --with-apr=$HOME/local/bin/apr-config --with-apu-config=$HOME/local/bin/apu-config make make install make swig-py make install install-swig-py
Python が見つけられるように、PYTHONPATH にリンクしておく。
ln -s $HOME/local/lib/svn-python/* $PYTHONPATH
clearsilver
easy_install でインストールできるんだけど、それで入る 0.10.x だとエラーになって trac が動かない。仕方がないので、手動で 0.9 をインストールした。
cd ~/tmp wget http://www.clearsilver.net/downloads/clearsilver-0.9.14.tar.gz gunzip clearsilver-0.9.14.tar.gz tar -xvf clearsilver-0.9.14.tar cd clearsilver-0.9.14 ./configure --prefix=$HOME/local --oldincludedir=$HOME/local/include --disable-ruby --disable-java --disable-perl --disable-csharp --disable-python --disable-static make make install cd python python setup.py install
あったら便利らしい
SilverCity
リポジトリブラウザで構文強調がされたりして、なんとなく幸せになれる。
cd ~/tmp wget http://jaist.dl.sourceforge.net/sourceforge/silvercity/SilverCity-0.9.7.tar.gz tar zxvf SilverCity-0.9.7.tar.gz cd SilverCity-0.9.7 python setup.py install
trac
ようやく trac 本体。もちろんインタアクトさんの日本語版を使用する。
cd ~/tmp 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 python setup.py install
cgi で動作させる
とりあえずサブドメインとかは使わないで動かすので、 trac.cgi を ~/public.html にコピー。サブドメインとかを使うなら ~/public_html/sub.example.com かな。
cp ~/share/trac/cgi-bin/trac.cgi ~/public_html
~/public_html に置く .htaccess はこんな感じで。
RewriteEngine On RewriteRule ^$ /trac/ [R=301,L] RewriteRule ^trac/(.*)$ /trac.cgi/$1 [L]
次に trac.cgi を編集して ~/public_html にアップロードする。TRAC_ENV の設定は必須。SCRIPT_NAME は任意だけど、これを指定しないと /trac.cgi/wiki/ とかになる。http://example.com/wiki/ っていう表示にする方法は見つけられなかった。
# 1行目 #!/virtual/reguzy/bin/python # 18行目移行に追記する。 try: import os os.environ['SCRIPT_NAME'] = "/trac/" os.environ['TRAC_ENV'] = "/virtual/XXX/repos/trac" from trac.web import cgi_frontend
trac プラグイン
WebAdmin
これは easy_install で。
easy_install http://svn.edgewall.com/repos/trac/sandbox/webadmin/
それだけだと動作しないので、 trac.ini に設定を追記する。
[components] webadmin.* = enabled
AccountManager
ブラウザからユーザを作成するために必要なんだけど、どうも http://trac-hacks.org/ がダウンしてるみたい。本家にチケット #6089 (can't reach http://trac-hacks.org/) - The Trac Project があるけど、しばらく復旧しそうにない。なのでさくらから egg を ~/repos/trac/plugin/ にコピーした。
まずはアカウントを作成するために、 ~/repos/trac/conf/trac.ini に追記する。
[account-manager] password_format = htpasswd password_file = /virtual/XXX/repos/trac/conf/trac.htpasswd [components] trac.web.auth.LoginModule = disabled acct_mgr.web_ui.LoginModule = enabled
アカウントを作成したら、勝手にユーザを作られないようにしておく。
[components] trac.web.auth.LoginModule = disabled acct_mgr.web_ui.LoginModule = enabled acct_mgr.web_ui.registrationmodule = disabled
いろいろ出来るように、作成したユーザに管理者権限を与えておく。これでログインすれば Admin メニューが使えるようになってるはず。
trac-admin ~/repos/trac permission add XXX TRAC_ADMIN
SpamFilter
まあないよりあった方がいいので、スパム対策もしておく。
easy_install TracSpamFilter
Admin で 有効化したら、trac.ini に設定を追記する。
[akismet] api_key = your_api_key api_url = rest.akismet.com/1.1/
upgrade が必要なのでしておく。
trac-admin ~/repos/trac upgrade
trac-post-commit-hook
これもないよりあった方がいいので、動くようにしておく。
cp ~/tmp/trac-0.10.4-ja-1/contrib/trac-post-commit-hook ~/repos/svn/hooks
post-commit はこんな感じ。実行権限を与えるのを忘れずに。さくらと違って、UTF-8 のための小細工は必要ない。いいね。
#!/bin/sh REPOS="$1" REV="$2" export LANG=ja_JP.UTF-8 LOG=`svnlook log -r $REV $REPOS` AUTHOR=`svnlook author -r $REV $REPOS` python ${REPOS}/hooks/trac-post-commit-hook \ -p "/virtual/XXX/repos/trac" \ -r "$REV" \ -u "$AUTHOR" \ -m "$LOG"
だいたい必要なのはこれくらいかな。