Subversion 1.6インストール+初期設定
目次
構成
想定環境
ここでは以下の構成でSubversionの環境を構築していきます。
Apache公開ディレクトリ | /var/www/svn/ |
---|---|
リポジトリ名 | test |
サーバ構成
OSバージョン
Red Hat Enterprise Linux 5.9 x86_64
パッケージ一覧
httpd-2.2.3-74.el5.x86_64.rpm
subversion-1.6.11-10.el5_8.x86_64.rpm
mod_dav_svn-1.6.11-10.el5_8.x86_64.rpm
※いずれもRHEL5.9のインストールメディアに同梱
クライアント構成
OSバージョン
Windows 7 Ultimate 64bit
ソフトウェア一覧
TortoiseSVN-1.8.4.24972-x64-svn-1.8.5.msi
LanguagePack_1.8.4.24972-x64-ja.msi
※これらを使って動作確認しましたが、導入手順は別ページにまとめます。
環境構築
事前準備
先にApacheのインストールと初期設定を行います。 「Apacheインストール+PHP&SSI&CGI実行環境構築」を参照して Apacheの導入を済ませてください。 Subversionを使用するに当たってPHPやSSI、CGIは不要なので、 有効化したくなければ設定をオフにしてもらっても大丈夫です。
インストール
Apache以外で必要なパッケージをインストールします。 subversionパッケージはLinuxインストール時にインストールされていたので、 残るApacheの追加モジュールのみインストールします。 DVDドライブにRHEL5.9のDVD-ROMをセットし、以下のコマンドを実行します。
# mount /dev/cdrom /media/cdrom mount: ブロックデバイス /dev/cdrom は書き込み禁止です、読込み専用でマウントします # cd /media/cdrom/Server/ # rpm -ihv mod_dav_svn-1.6.11-10.el5_8.x86_64.rpm 準備中... ########################################### [100%] 1:mod_dav_svn ########################################### [100%] # cd / # umount /media/cdrom
設定
Subversion向けにApacheの設定変更
まずはApacheのメインの設定ファイルである httpd.conf を修正します。 SubversionではWebDAVの機能を利用するため、関連するモジュールを ロードするよう設定します。 また、ApacheのモジュールとしてのSubversionの設定ファイルである subversion.conf を読み込むよう編集します。
# cd /etc/httpd/conf/ # vi httpd.conf
※ファイルの該当箇所を修正※ #LoadModule dav_module modules/mod_dav.so ↓変更 LoadModule dav_module modules/mod_dav.so ←コメントアウトを外す
#LoadModule dav_fs_module modules/mod_dav_fs.so ↓変更 LoadModule dav_fs_module modules/mod_dav_fs.so ←コメントアウトを外す
Include conf.d/php.conf ↓変更 Include conf.d/php.conf Include conf.d/subversion.conf ←この行を追加
Subversion固有の設定ファイルである subversion.conf を編集します。
# cd /etc/httpd/conf.d/ # vi subversion.conf
※ファイルの末尾に追加※
<Directory /var/www/svn>
Order allow,deny
Allow from all
<Limit GET PROPFIND OPTIONS REPORT>
order allow,deny
Allow from all
</Limit>
<LimitExcept GET PROPFIND OPTIONS REPORT>
order deny,allow
Deny from all
</LimitExcept>
</Directory>
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
</Location>
Subversion用ディレクトリの作成
Subversionのリポジトリを格納するためのApacheの公開ディレクトリを作成します。 /var/www/svn/ ディレクトリ内にリポジトリを作成します。
# cd /var/www/
# mkdir svn
# ll
合計 20
drwxr-xr-x 2 root root 4096 10月 24 2012 cgi-bin
drwxr-xr-x 3 root root 4096 10月 4 22:47 error
drwxr-xr-x 2 root root 4096 10月 6 03:23 html
drwxr-xr-x 3 root root 4096 10月 4 22:54 icons
drwxr-xr-x 2 root root 4096 11月 30 23:31 svn ←作成された
Apacheの再起動
Apacheの設定が完了したら、Apacheを再起動します。
# service httpd restart httpd を停止中: [ OK ] httpd を起動中: [ OK ]
Subversionの起動
Subversionのデーモンはサービスに登録されているので、 serviceコマンドで起動します。 サービス名は「svnserve」です。
# service svnserve start svnserve を起動中: [ OK ]
Subversionの自動起動設定
Subversionのサービス svnserve は初期状態では自動起動するように設定されていません。 自動起動するよう設定します。
# chkconfig svnserve on # chkconfig --list svnserve svnserve 0:off 1:off 2:on 3:on 4:on 5:on 6:off
リポジトリの作成
Subversionのリポジトリを作成します。 ここでは例として「test」という名前のリポジトリを作成します。 先ほど作成した /var/www/svn/ ディレクトリ内に作成します。
# svnadmin create /var/www/svn/test
リポジトリ内にディレクトリの作成
作成した test リポジトリ内に動作確認のためディレクトリを3つ作成してみます。 作成する毎に自動的にコミットされ、リビジョン番号がインクリメントされます。
# svn mkdir file:///var/www/svn/test/trunk -m 'Create trunk' リビジョン 1 をコミットしました。 # svn mkdir file:///var/www/svn/test/tags -m 'Create tags' リビジョン 2 をコミットしました。 # svn mkdir file:///var/www/svn/test/branches -m 'Create branches' リビジョン 3 をコミットしました。
※これら3つのディレクトリは削除して構いません。
リポジトリの所有者、所有グループを変更
最後にリポジトリの所有者、所有グループを変更します。 リポジトリの作成やリポジトリ内のディレクトリの作成を rootユーザで実行したため、所有者:root、所有グループ:rootになっています。 全てLinux上のrootユーザで毎回コマンドで制御するなら(おそらく)問題ありませんが、 Apache経由でクライアントから接続して利用する場合に権限の問題で利用できません。 /etc/httpd/conf.d/subversion.conf ファイルの用例にも書かれていますが、 リポジトリ内の全ディレクトリ、ファイルの所有者をapache、所有グループをapacheに変更する必要があります。 ただ、リポジトリ自体を作成する際に権限不足となることがあるかもしれないので、ここではリポジトリを格納する /var/www/svn/ ディレクトリ以下全ての所有者、所有グループを apache に変更することにします。
# chown -R apache:apache /var/www/svn