上記は 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 テストレポジトリ
保護ディレクトリリストに /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 などのクライアントから
で接続すれば良い。
このレポジトリで、UE4 のソースコントロールもしてみたが、
問題なくコミットすることができた。
コメント