上記は Ubuntu + plesk 12.5 の例だが、
基本的にはこちらに書かれた内容で大丈夫だった。
0. 実装環境
- CentOS 7
- plesk Onxy
また、
- ドメイン名: mydomain.com
- レポジトリ作成先:/var/www/vhosts/mydomain.com/httpdocs/svn/test
- 外部からレポジトリへのアクセス:http://mydomain.com/svn/test
と仮定する。
1. subversion インストール
事前に plesk で SSH できるように設定しておく。
(ウェブサイトとドメイン → ウェブホスティングアクセスで、システムユーザを設定)
SSH でログインしたら、スーパーユーザになってから subversion 取得。
$ su - $ yum -y install subversion mod_dav_svn
バージョン確認してみる。
$ svn --version svn, version 1.7.14 (r1542130) compiled Aug 23 2017, 20:43:38 Copyright (C) 2013 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository access (RA) modules are available: * ra_neon : Module for accessing a repository via WebDAV protocol using Neon. - handles 'http' scheme - handles 'https' scheme * ra_svn : Module for accessing a repository using the svn network protocol. - with Cyrus SASL authentication - handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. - handles 'file' scheme
最新(ver.1.9.7)ではなかったので、以下を参考にして最新を取得する。
/etc/yum.repos.d/wandisco.repo の作成は、URL 先が存在することを確認してから書き換えておく。
[wandisco-svn] name=WANDisco Repository - snv-1.9 centos7 baseurl=http://opensource.wandisco.com/centos/7/svn-1.9/RPMS/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-WANdisco
$ rpm --import http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco $ yum install --enablerepo=wandisco-svn --disablerepo=base,updates,epel subversion
これで ver.1.9.7 の subversion をインストールできた。
2. レポジトリ作成
svnadmin でレポジトリ作成。あと apache に所有権与えておく。
$ svnadmin create /var/www/vhosts/mydomain.com/httpdocs/svn/test $ chown -R apache: /var/www/vhosts/mydomain.com/httpdocs/svn/test
3. plesk からレポジトリに保護ディレクトリ設定
ウェブサイトとドメイン → パスワード保護ディレクトリ → 保護ディレクトリ追加 で保護ディレクトリに設定する。
ディレクトリ名: /svn/test
保護エリアのタイトル: svn テストレポジトリ
保護ディレクトリリストに /svn/test が追加される。
さらに、作成された /svn/test に「ユーザを追加」で、アクセスさせたいユーザとパスワードを指定しておく。
4. plesk から http ディレクティブ設定
3 を行うことで、
/var/www/vhosts/system/mydomain.com/pd/d..httpdocs@svn@test
というファイルにユーザ名と暗号化されたパスワードの列が記録される。
これはいわゆる htpasswd ファイルになっているので、
このファイルを http ディレクティブで AuthUserFile に設定することで、
特定のユーザ + パスワードでの http 接続ができるようになる。
ウェブサイトとドメイン → Apache と nginx の設定 → HTTP 用追加ディレクティブ に以下を追加。
<Location /svn/test> DAV svn SVNPath /var/www/vhosts/mydomain.com/httpdocs/repos/test AuthType Basic AuthName "svn" AuthUserFile "/var/www/vhosts/system/mydomain.com/pd/d..httpdocs@svn@test" require valid-user </Location>
以上。
あとは、外部から TortoiseSVN などのクライアントから
http://mydomain.com/svn/test
で接続すれば良い。
このレポジトリで、UE4 のソースコントロールもしてみたが、
問題なくコミットすることができた。