CentOSにSubversionを入れてみる
VirtualBoxにCentOSをとりあえずインストール
の続き
CentOSにSubversionを入れてみる。
とりあえずrootになる。
$ su -
Apacheのインストール
Apacheが入ってなければ、インストールしておく。
# yum -y install httpd # service httpd start # chkconfig httpd on
Subverisonのインストール
Subversionをインストールする。
# yum -y install subversion mod_dav_svn
# mkdir /var/www/svn
# vi /etc/httpd/conf.d/subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos> DAV svn SVNParentPath /var/www/svn </Location>
# service httpd restart
SVNリポジトリの作成
SVNリポジトリを作成する。
また、Apacheでアクセスできるようにしておく。。
# svnadmin create /var/www/svn/sample # chown -R apache:apache /var/www/svn/sample
作成したSVNリポジトリにtrunk/branches/tagsのディレクトリを作成する。
# mkdir -p /tmp/svn/{trunk,branches,tags} # svn import /tmp/svn file:///var/www/svn/sample -m "create trunk branches and tags."
Basic認証の設定
Basic認証を設定する場合は、
subversion.confを下記のように設定する。
# vi /etc/httpd/conf.d/subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos> DAV svn SVNParentPath /var/www/svn AuthType Basic AuthName "Authorization Realm" AuthUserFile /etc/httpd/.htpasswd Require valid-user </Location>
# service httpd restart
後は、SVN用のユーザーを用意する。
# htpasswd -c /etc/httpd/.htpasswd SVN用ユーザー名
(SVN用ユーザーのパスワードを2回入力する)
以上で、
http://サーバーのアドレス/repos/sample/
にアクセスすると、Basic認証が表示される。
SSLの設定
上記のBasic認証だと、パスワードがそのまま通信されてしまうので、
SSLを設定する。
mod_sslをインストールする。
# yum -y install mod_ssl
subversion.confを下記のように設定する。
# vi /etc/httpd/conf.d/subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos> DAV svn SVNParentPath /var/www/svn SSLRequireSSL AuthType Basic AuthName "Authorization Realm" AuthUserFile /etc/httpd/.htpasswd Require valid-user </Location>
# service httpd restart
以上で、
https://サーバーのアドレス/repos/sample/
にアクセスすると、下記の画面が表示され、
「このまま続行」をクリックすると、Basic認証が表示される。
【参考】 [CentOS] Apache + SSL + Subversion + Basic認証( Basic認証は危険) | J-Linuxer http://jlinuxer.dip.jp/?p=958
(補足)参照は誰でも・更新のみBasic認証
更新のみBasic認証にして、参照は誰でも可能にする場合は、
subversion.confを下記のような感じで設定する。
# vi /etc/httpd/conf.d/subversion.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos> DAV svn SVNParentPath /var/www/svn <LimitExcept GET PROPFIND OPTIONS REPORT> SSLRequireSSL AuthType Basic AuthName "Authorization Realm" AuthUserFile /etc/httpd/.htpasswd Require valid-user </LimitExcept> </Location>