Apache+WebDAV+Subversion+SSLの設定(パッケージ利用)

CentOS 5へ パッケージapache+subversionをインストールする

  • すでにapacheはパッケージで導入済み
  • (mod_sslパッケージも導入済み。httpdと一緒に導入されていた?)
httpd.i386                               2.2.3-11.el5_2.centos. installed
httpd-devel.i386                         2.2.3-11.el5_2.centos. installed
httpd-manual.i386                        2.2.3-11.el5_2.centos. installed
system-config-httpd.noarch               5:1.3.3.3-1.el5        installed


  • subversionパッケージを導入
# yum install subversion
  • mod_dav_svnパッケージを導入。これでhttpd.confで Dav svn を記述できるようになる。
# yum install mod_dav_svn

リポジトリを作成

  • 動作確認用リポジトリを作成
# mkdir /var/www/svn            リポジトリ作成パス
# cd /var/www/svn
# svnadmin create sample        リポジトリを作成
# chown -R apache:apache        /var/www/svn apacheが読み書きできるように変更

SVN公開設定

  • mod_dav_svnパッケージ付属の/etc/httpd/conf.d/subversion.confを編集する
  • このあとapacheを再起動しておく
<Location /svn>
 Dav svn
 SVNParentPath /var/www/svn                    リポジトリ作成パス
 SVNListParentPath off                          リポジトリ一覧を表示する設定
 SSLRequireSSL                                 接続にSSLを要求する
 AuthType Basic
 AuthName "subversion"
 AuthUserFile /var/www/svn/svnusers            ユーザパスワードファイル
 require vaid-user
 AuthzSVNAccessFile /var/www/svn/svnaccess     ユーザ権限管理ファイル
 Order Allow,Deny
 Allow from 192.168.1.0/24                     内部LANからのアクセスのみ許可
 #Allow from all                               すべてのアクセスを許可
 #apache 2.4
 Require ip 192.168.1
 #認証またはipアドレス条件いずれか満たせば許可
 Satisfy any
</Location>

ユーザパスワードファイルを作成

htpasswdで作成

# cd /var/www/svn
# htpasswd -c svnusers user_a
New password:
Re-type new password:
Adding password for user user_a

リポジトリへのユーザ権限管理ファイルを作成

# vi /var/www/svn/svnaccess
[sample:/]
user_a = rw     user_aへsampleリポジトリへの読み書き権限を付与

TortoiseSVNでチェックアウト

  • sampleリポジトリをチェックアウトして確認。URLは https://<サーバー>/svn/sample
  • 認証ダイアログが表示されるので、作成したuser_a/パスワードを指定

Svn.1.png


コミット確認

  • 適当なファイルを追加して、コミットの確認をする。

Svn.2.png

  • apacheが/var/www/svn/sampleへ書き込めるように設定されていないと、ここでエラーになる。
エラー: コミットに失敗しました (詳しい理由は以下のとおりです):  
エラー: Can't create directory '/var/www/svn/sample/db/transactions/0-1.txn':   
エラー: Permission denied

facebook slideshare rubygems github qiita