CentOS7にsvnサーバをインストールする (apache編)

    

SVNのインストール

yum -y install subversion mod_dav_svn

リポジトリ作成

mkdir -p /opt/repos/products
svnadmin create /opt/repos/products

svn-httpd連携設定

暫定的に基本認証とします。
基本認証ではセキュリティー上不安があるので後にssl化、あるいはIP認証をかけておくと良いと思います。

/etc/httpd/conf.d/subversion.conf

<Location /repos/>
   DAV svn
   SVNParentPath /opt/repos
   # Limit write permission to list of valid users.
   #<LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL

      AuthType Basic
      AuthName "Authorization Realm"
      AuthUserFile /opt/.htpasswd_svn
      Require valid-user
   #</LimitExcept>
</Location>

svn用基本認証アカウント生成

/opt/.htpasswd_svn

test:tZl5cEVDW6Q2.

上記のアカウントは下記のサイトで作成できます(htpasswd 作成で検索)
.htaccess による認証用 パスワード暗号化ツール

コマンドで作成する場合は下記のコマンドを入力します。

htpasswd -nb id password

id/passwordは設定したいID/パスワードに変更してください。

apache設定反映

systemctl reload httpd

SELinuxが有効な場合

selinuxが有効な場合リポジトリにコミットしようとした場合に、パーミッションエラーとなりコミットに失敗することがあります。切り分けの為、一度selinuxを無効にしてコミットを実施してみてください。

SELinuxの無効化 (有効に戻す場合は0を1に書き換えます)

setenforce 0

SELinuxを無効にしコミットに成功する場合は下記のコマンドを実行しディレクトリに実行や読み書きが可能なようにします。

chcon -R -t httpd_sys_content_t /opt/repos
chcon -R -t httpd_sys_rw_content_t /opt/repos

ここで付与した設定はlsコマンドにZオプションを付与することにより確認できます。
SELinuxを無効化してもコミットに失敗する場合は、設定内容・ログやリポジトリのディレクトリのオーナや権限を再度確認します。