OSS Fan ~OSSでLinuxサーバ構築~

作成日: 2013/12/02

OSSでLinuxサーバ構築

Subversion 1.6インストール+初期設定

トップページOSSでLinuxサーバ構築 > 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

設定

(1) Subversion向けにApacheの設定変更

 まずはApacheのメインの設定ファイルである httpd.conf を修正します。 SubversionではWebDAVの機能を利用するため、関連するモジュールを ロードするよう設定します。 また、ApacheのモジュールとしてのSubversionの設定ファイルである subversion.conf を読み込むよう編集します。

# cd /etc/httpd/conf/
# vi httpd.conf
ファイル名:/etc/httpd/conf/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
ファイル名:/etc/httpd/conf.d/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>

(2) 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 ←作成された

(3) Apacheの再起動

 Apacheの設定が完了したら、Apacheを再起動します。

# service httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

(4) Subversionの起動

 Subversionのデーモンはサービスに登録されているので、 serviceコマンドで起動します。 サービス名は「svnserve」です。

# service svnserve start
svnserve を起動中:                                         [  OK  ]

(5) Subversionの自動起動設定

 Subversionのサービス svnserve は初期状態では自動起動するように設定されていません。 自動起動するよう設定します。

# chkconfig svnserve on
# chkconfig --list svnserve
svnserve        0:off   1:off   2:on    3:on    4:on    5:on    6:off

(6) リポジトリの作成

 Subversionのリポジトリを作成します。 ここでは例として「test」という名前のリポジトリを作成します。 先ほど作成した /var/www/svn/ ディレクトリ内に作成します。

# svnadmin create /var/www/svn/test

(7) リポジトリ内にディレクトリの作成

 作成した 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つのディレクトリは削除して構いません。

(8) リポジトリの所有者、所有グループを変更

 最後にリポジトリの所有者、所有グループを変更します。 リポジトリの作成やリポジトリ内のディレクトリの作成を 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

プロフィール

らのっち

損害保険会社のIT企画部に勤務するSEです。OSSを勉強中です。

<所属>
日本PostgreSQLユーザ会とくしまOSS普及協議会

■■■ 当サイトは Internet Explorer 11 と Mozilla Firefox 43 で動作確認済みです。 ■■■