ボクの覚え書き – CentOSでサーバ構築 サーバー構築やプログラミングの覚え書き

Subversion+WebDAV+Tracでバージョン管理(プロジェクト管理)

03.28.2009 · Posted in 覚え書き

ボクはいくつかのサイトを運営しています。運営上、何かと不便なことが出てきたので、バージョン管理を入れることにしました。

有名どころのsubversionを使います。外出時でも使えるようにしたいのでwebdavと組み合わせます。

trac」というプロジェクト管理ツールがあるということなので、ついでにそれもいれます。

まずはsubversionとwebdavのインストール。

# yum install mod_dav_svn

これだけで必要なものは全てインストールされます。

次はtracのインストール。
本家サイトにはソースしか置いてませんが、yumでインストールする方法がありました。

# vi /etc/yum.repos.d/deg.repo
-----
[dag]
name=Dag RPM Repository for Redhat EL4
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
gpgcheck=1
enabled=0
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
-----

# yum install mod_python
# yum install trac --enablerepo=dag

tracはpythonで実装されているので一緒にmod_pythonもインストールします。

続いて、tracの日本語化。これはyumではできません。

# wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.2.1.ja1.zip
# unzip ./Trac-0.11.2.1.ja1.zip
# cd ./Trac-0.11.2.1.ja1
# python setup.py install

インストール完了です。

それではSubversionのリポジトリを作成します。
プロジェクト名を「hogehoge」、ディレクトリを「/var/proj/svn」とします。
Apacheからファイルの読み書きができるようにパーミッションを変更、Basic認証でアクセス制限もかけます。

# mkdir /var/proj
# mkdir /var/proj/svn
# svnadmin create /var/proj/svn/hogehoge
# svn mkdir file:///var/proj/svn/hogehoge/trunk file:///var/proj/svn/hogehoge/tags file:///var/proj/svn/hogehoge/branches -m 'init repository layout (trunk,tags,branches)'
# chown -R apache.apache /var/proj/svn/hogehoge
# htpasswd -c /var/proj/.htpasswd kimura

Apacheの設定をします。

# vi /etc/httpd/conf.d/subversion.conf
----------
<Location /svn>
    DAV svn
    SVNParentPath /var/proj/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 /var/proj/svn/.htpasswd
        Require valid-user
    </LimitExcept>
</Location>
----------

# /etc/init.d/httpd graceful

ブラウザでアクセスして『Revision 1:/』と表示されればOKです。
http://xxxxxxxxxxxxx/svn/hogehoge

次は、Tracのプロジェクトを作成します。
プロジェクト用のディレクトリを「/var/proj/trac」とします。
trac-adminコマンドの後いろいろと聞かれます。
プロジェクト名は「hogehoge」としておきます。
データベースはsqliteを使用するのでそのままエンター。
リポジトリタイプもデフォルトのsubversionでいいのでそのままエンター。
リポジトリのパスは先ほど作成したものを指定します。
Apacheで処理するのでパーミッションを変更しておきます。

# mkdir /var/proj/trac
# trac-admin /var/proj/trac/hogehoge initenv
  Project Name [My Project]> hogehoge
  Database connection string [sqlite:db/trac.db]>
  Repository type [svn]>
  Path to repository [/path/to/repos]> /var/proj/svn/hogehoge
# chown -R apache.apache /var/proj/trac/hogehoge

Apacheの設定をします。

# vi /etc/httpd/conf.d/trac.conf
----------
<Location /trac>
    SetHandler mod_python
    #PythonDebug On
    PythonInterpreter main_interpreter
    PythonHandler trac.web.modpython_frontend
    PythonOption TracEnvParentDir /var/proj/trac
    PythonOption TracUriRoot /trac

    AuthType Basic
    AuthName "Trac"
    AuthUserFile "/var/proj/.htpasswd"
    Require valid-user
</Location>

#<LocationMatch "/trac/.*/login">
#   AuthType Basic
#   AuthName "trac"
#   AuthUserFile "/var/proj/svn/.htpasswd"
#   Require valid-user
#</LocationMatch>
----------

# /etc/init.d/httpd graceful

ブラウザでアクセスして確認します。
http://xxxxxxxxxxxxx/trac/hogehoge

subversionのクライアントは「TortoiseSVN」がいいかな。
インストール方法と日本語化はこちらを参照。

TortoiseSVNのインストールと設定

Comments are closed