I ♥ WordPress

CentOS5 で Subversion+Trac
2007/08/27 21:24 posted by kunkichi

またもや前回のエントリから時間が経ってしまったのだけど、いろいろ検証しているうちにキックスタート設定ファイルやら構築手順やらのファイル管理が必要な気がしてきた。

のちのちはアプリ開発環境も構築していきたいということもあって、ちょっと脱線して、前からやってみたかった Subversion+Trac を CentOS5 に導入してみました。

ちなみに、前提条件はこんな感じ。

  • Subversion のレポジトリは /home/develop/svn 配下にプロジェクト毎にディレクトリを分けて作成。

    例)
        /home/develop/svn/project1
        /home/develop/svn/project2
        /home/develop/svn/project3

  • Trac のプロジェクト用ディレクトリは /home/develop/trac 配下にプロジェクト毎にディレクトリを分けて作成。

    例)
        /home/develop/trac/project1
        /home/develop/trac/project2
        /home/develop/trac/project3

  • Subversion へのアクセスは HTTP経由のみ。svn はセキュリティ的にありえないし、svn+ssh は複数で使う場合にパーミッションの問題が面倒な気がしたので。HTTP なら apache ユーザの権限つけとけば済むのでシンプル。
  • Subversion へのアクセス制限はBASIC認証。またコミット時はこれがコミットしたユーザとして登録される。HTTPS はある程度環境ができてから。
  • Trac へのアクセス制限は Subversion のアクセス制限設定と同じファイルを使う。
  • OS は CentOS5 を最小構成で入れた状態。
  • 【追記】2007/9/7:SELinuxとFirewallはOFF。

では手順。

・Subversion のインストール

CentOS5 では subversion を HTTP 経由 で使うのに必要なパッケージが全部揃っているので、yumで subversion、httpd、mod_dav_svn をインストールすればオーケー。コマンド的には↓で全部必要なものが入ります。
# yum install mod_dav_svn
subversion のレポジトリを作成。プロジェクト名は”test”とします。
# mkdir -p /home/develop/svn
# svnadmin create /home/develop/svn/test

トランク、タグ、ブランチ用のディレクトリを作成。
# svn mkdir file:///home/develop/svn/test/trunk file:///home/develop/svn/test/tags file:///home/develop/svn/test/branches -m "init repository layout (trunk,tags,branches)"
apacheからファイルの読み書きが出来るようにパーミッションを変更。
# chown -R apache.apache /home/develop/svn/test
BASIC認証の設定。
# htpasswd -c /home/develop/.htpasswd kunkichi
apache の設定変更。/etc/httpd/conf.d 以下に subversion.conf が出来ているのだけど、全てコメントアウトされているので、必要な箇所のコメントアウトを外して、リポジトリ、BASIC認証用パスワードファイルのパスを変更。
# vi /etc/httpd/conf.d/subversion.conf
最終的にはこんな感じ。
<Location /svn>
   DAV svn
   SVNParentPath /home/develop/svn
 
   # Limit write permission to list of valid users.
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL
 
      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /home/develop/.htpasswd
      Require valid-user
   </LimitExcept>
</Location>

最後にapacheを再起動+自動起動設定。
# service httpd start
# chkconfig httpd on

ブラウザで確認。トランク、タグ、ブランチ用のディレクトリを作成した時にリビジョンが上がっているので”Revision 1: /”と表示されればOK。

・Tracのインストール

続いて Trac のインストール。

こちらも yum でササッと行きたいところだけど、CentOS5 の標準リポジトリに Trac は含まれていない。あとTrac が依存しているライブラリも同様。でもサードパーティーのレポジトリである DAGレポジトリ(rpmforge) でちゃんとパッケージ化されているのでこれを使えばオーケー!

、、、なんだけど、DAG の Trac パッケージは日本語化がされていない。個人的には英語でもなんら困らないし、むしろサーバのパッケージ管理を考えるとこっちの方がベターなんだけど、初のTrac ということもあるので、今回は依存ライブラリを DAG から、Trac 本体はインタアクト株式会社のウェブサイトで提供されている日本語化されているものを使う。

DAGレポジトリの追加。
# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

DAGレポジトリは標準でOFF。必要なときのみONとする。DAGレポジトリの設定ファイルを開いて
# vi /etc/yum.repos.d/rpmforge.repo
・・・
enabled = 1
・・・
これを
・・・
enabled = 0
・・・

に変更。

Tracが依存しているライブラリをDAGからインストール
# yum --enablerepo=rpmforge install -y python-clearsilver
ついでにmod_pythonもインストールしておく。こっちは標準レポジトリから。
# yum install -y mod_python

日本語化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

Tracプロジェクト用ディレクトリの作成
# mkdir /home/develop/trac
Tracプロジェクトの作成。こちらも subversion のプロジェクト名と同じように”test”とします。
# trac-admin /home/develop/trac/test initenv
trac-admin 〜 initenv するといろいろ聞かれるので以下のように回答していきます。

まずプロジェクト名。”test”と入力。
Project Name [My Project]> test
Tracのデータベース接続詞を設定。今回はお手軽に デフォルトのsqlite を使うのでそのままENTER。
Database connection string [sqlite:db/trac.db]>
レポジトリのタイプを指定。subversion がデフォルトなのでそのままENTER。
Repository type [svn]>
subversionのレポジトリパスを指定します。
Path to repository [/path/to/repos]> /home/develop/svn/test
Tracのテンプレートパスを指定。とりあえずデフォルトで。そのままENTER。
Templates directory [/usr/share/trac/templates]>

完了したら動作確認。Trac付属の簡易HTTPサーバを起動。
# tracd --port 8000 /home/develop/trac/test
ブラウザで http://サーバのIP:8000/プロジェクト名 にアクセスして画面が表示されればとりあえずOK。

Tracd で動作確認が出来たら Ctrl+C で止めて今度はapacheで動作するように設定。まずパーミッションを変更。
# chown -R apache:apache /home/develop/trac/test
次にtrac用のapache設定ファイルを作成。
# vi /etc/httpd/conf.d/trac.conf
内容はこんな感じ。
<Location /trac>
   SetHandler mod_python
   PythonDebug On
   PythonHandler trac.web.modpython_frontend
   PythonOption TracEnvParentDir /home/develop/trac
   PythonOption TracUriRoot /trac
</Location>
 
<LocationMatch "/trac/.*/login">
   AuthType Basic
   AuthName "trac"
   AuthUserFile "/home/develop/.htpasswd"
   Require valid-user
</LocationMatch>

設定が終わったらapacheを再起動して設定を反映。
# service httpd restart
ブラウザで http://サーバのIPアドレス/trac/test にアクセスして確認してみます。
Trac
こんな画面が表示されたらこれで一応完了です。

あと、やりたいこととして

  • HTTPSでのアクセス。
  • Subversion のコミットとTracのチケットの連携。
  • Subversion でコミットが行われたり、Trac でチケットが登録された時にメールで通知。

とかあるんだけどこれは後々。

【追記:2007/9/8】

このエントリを参照していただいたサイトで以下のエントリがありました。

■[CentOS]CentOS5でsubversionを入れる時に詰まったことのメモ

  CentOS5 で Subversion+Trac | cafe chantant blog

VMware Serverを導入したので、CentOS5を入れていろいろと試そうということで上記のページを参考にSubversionのインストールしました。

インストールを終えてブラウザから動作の確認をしたのですが、「Could not open the requested SVN filesystem」と表示され、うまくいっていませんでした。(public static void main

テスト環境だったのでSELinuxとかFirewallはOFFにしてたのですが記述してなかったので追記しました。

コメント&トラックバック

トラックバックURL





このページの先頭へ