CentOS6にサブバージョンサーバーを導入してみます。
WebDAVでのリポジトリ公開と認証設定まで行ってみたいと思います。
なお、アパッチなどの基本設定は終了しているものとします。
1.サブバージョンをインストールします
#yum install subversion
2.公開するリポジトリの作成
#mkdir -p (公開ディレクトリ) #svnadmin create (公開ディレクトリ)
3.WebDAB設定
WebDABのインストール
# yum install mod_dav_svn
/etc/httpd/conf.d/subversion.conf が作成されるはずですのでこれを以下のように編集します
DAV svn SVNPath (公開ディレクトリ) #SSLRequireSSL
アパッチからアクセスできるようにれレポジトリの所有権を変更します。
# chown -R apache:apache (公開ディレクトリ)
リスタート後に
#/etc/rc.d/init.d/httpd restart
ブラウザでhttps://(ドメイン名)/hoge で見えるようになるはずです。
また、この直下のフォルダ内のコミットやチェックアウトも可能になります。
アクセス認証の方法
まず、適当なフォルダにパスワードファイルを用意します。
これにはhtpasswdコマンドを利用します。新規作成の場合は以下
htpasswd -c /etc/httpd/.htpasswd {USERNAME1}
追記の場合は’-c’を消してください。
次にこのファイルをsubversion.confのレポジトリの設定部に登録します。
下記のように追記してください。
AuthUserFile /etc/httpd/.htpasswd
単純なパスワード認証ならこれで後はhttpdをリスタートすればOK。
高度な認証方法
ユーザー、フォルダごとのアクセス権限を設定することもできます。
適当なフォルダに(/etc/httpd/authzsvn.conf)を作成し、次のような設定を行います
[groups] #ここでグループ分け hoge や uga はhtpasswdで作ったユーザーアカウントです。 dev1 = hoge,hoge2 dev2 = uga,ugaga [/] #ルートの設定。この場合、全ユーザーはリードのみOKを表す * = r [repo1:/] #repo1フォルダ以下のアクセス権限 #@dev1はグループ名、rw はリードライトを表します。 #@を付けるとグループ名 つけないとユーザー名の意味になります @dev1 = rw #@dev2グループはアクセス禁止 @dev2 = [repo2:/] @dev1 = rw @dev2 = r
このファイルをsubversion.confのレポジトリの設定部に登録します。
下記のように追記してください。
AuthzSVNAccessFile /etc/httpd/authzsvn.conf
これでhttpdをリスタートすれば設定が有効になるはずです。
追記
なぜか、レポジトリのルートにアクセスできない。
解決策がこのサイトにあった!
http://blog.livedoor.jp/yoka3/archives/7862765.html
以下引用
http://svn.example.com/ でリポジトリ一覧を表示して、 http://svn.example.com/projectname/ をリポジトリルートにしたいなら、DocumentRootをどこか関係ないところに設定しておけば問題ない。
どうせWebDAVに上書きされるんだから、存在していて権限があるディレクトリであれば /tmp でもなんでもいい。(多分)
引用終わり
ということで、公開用ディレクトリを指定しているDocumentRootを、どこか関係ないフォルダにしておけばいいようである。