TortoiseSVNでSubversionのバージョン管理が出来るようになったので、
次はバグトラックと情報共有のためにTracを導入。
まずはYumでTracのインストール。
この辺を参考に、yumのリポジトリを変更。
/etc/yum.repos.d/Dag.repoでやってみたら失敗しちゃったので、
/etc/yum.repos.d/ContOS-Base.repoの最後に以下を追加。
[dag]
name=Dag RPM Repository for Redhat EL4
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=1gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
おお、Redhatのリポジトリがそのまま使えるのね、
と感心しつつyumでtracをインストール。
# yum install trac
どこを見ても、関連するプラグインのインストールではまっているみたいなので、
参考にしているサイトのまねをして一度tracをアンインストール。
# yum remove trac
で、日本語版をダウンロード。
# 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
後は、Pythonがうまくインストールしてくれる。
次に、Tracのプロジェクトを追加。
諸々の設定をある程度共有してプロジェクトを複数立てたいので、
/var/www/trac/以下にプロジェクトを配置することにする。
#trac-admin /var/www/trac/projectname initenv
順次質問されるのでそれぞれにきちんと答える。
Project Name [My Project]> 任意のプロジェクト名を入れる
Database connection string [sqlite:db/trac.db]> そのままエンター
Repository type [svn]> そのままエンター
Path to repository [/path/to/repos]> svnリポジトリの場所
Templates directory [/usr/share/trac/templates]> そのままエンター
ここで、tracdを起動して、きちんと動くのを確認。
# tracd -p 8000 /var/www/trac/projectname
これで、対象サーバーにアクセスしてみて動作を確認してみる。
http://localhost:8000/projectname
きちんと動いてる。
ここまでは順調。
アクセス制限をベーシック認証で行うために、htpasswdファイルを作る。
# htpasswd -c /var/www/trac/.htpasswd [アカウント名]
パスワードを聞かれるので、任意のパスワードを設定。
Linuxユーザーのパスワードとは無関係なので注意。
二人目以降のパスワードは-cオプションを外して同じ事を繰り返す。
ベーシック認証のためにApacheと連携させてみる。
が、ここではまった。
mod_pythonなど、諸々のプラグインをインストール、
Apahceの設定のために/etc/httpd/conf.d/trac.confを作って設定。
先ほどのTracプロジェクトフォルダのオーナーをapacheユーザーに変更。
Apacheを再起動してアクセスしてみる。
http://localhost/trac/projectname
プロジェクトページはきちんと表示されるし、
ログインもきちんと出来る。
でも、画面の上の方にSubversionへのアクセス制限が無い、とエラー表示。
どうやら、Tracプロジェクトで指定したSubversionリポジトリのformフォルダへのアクセス権が無い、
といっているらしい。
調べてみると、そのフォルダの読み書き権限をapacheユーザーに与えてやればいいらしいが、
プロジェクトが増えるたびにその操作をするのも大変だし、
第一セキュリティ的に問題がありすぎ。
で、他の方法を探す。
ちとしらべてみると、Subversionの旧バージョンに発生するバグらしい。
インストールされているSubversionはCentOSで自動的にインストールされたものなので、
アップデートしてみる。
# yum update subversion
最新版になったところで再トライ。
すると、今度は違うエラーが。
「Unsupported version control system "
svn"」とか何とか・・・
調べると、Python系のプラグインのバージョンが何とか・・
いろいろと情報が錯綜していて、Python門外漢の自分には何の事やらさっぱり、
と頭をかかえる。
で、ハタと思った。
tracdでなにが悪いの?と。
というわけで、構成をシンプルに考え直す。
1.宅内ルータからのポートフォワーディングでしか外からアクセスできない。
2.ポートフォワーディングで80番を開放しているwebサーバーがすでにある。
3.外からアクセスは結局、そのサーバーからリバースプロクシでtracサーバーに転送するつもりだった。
4.別にhttpsでアクセスさせるつもりはない。
と考えれば、Apacheを使うメリットが思いつかない。
ベーシック認証がtracdで使えるらしいので、
オプションを調べる。
# tracd --help
おー。きちんとベーシック認証に対応してるではありませんか。
デーモナイズも出来る。
ただ、停止のためのオプションはないので、
オプションでpidを書き出させて、それを使ってプロセスをkillしないといけない。
tracのヘルプを見ると、複数プロジェクトもこれでうまくいけるらしい。
というわけで、起動、停止用のシェルスクリプトを書いて、
/etc/init.dにコピー、chkconfigで起動リストに加えて完了。
試しにサーバーを再起動してみて、きちんとTracdが動いているのを確認。
お~、うまくいった。
後は、プロジェクト毎の権限設定などをしてゆく。
というわけで続く・・・・