VMwareのCentOSをSVNサーバにして、開発環境のバージョン管理用に構築してみた

自学でSVNサーバの構築とバージョン管理の練習として、仮想の環境(VMware)のCentOSをSVNサーバとして構築することにした。

##環境
■SVNサーバ
・VMware Workstation 14 Player
・CentOS Linux release 7.5.1804
・svn-1.7.14
・Apache-2.4.6

■開発環境
・Windows10
・Eclipse(Photon)
・TortoiseSVN-1.10.1

##1.SVNサーバ構築
###■パッケージのインストール

subversion、apache、svnとの連携モジュールのインストール

```
# yum install svn
# yum install httpd 
# yum install mod_dav_svn
```

###■apache設定
自動起動設定

```
# systemctl enable httpd
# reboot
```

再起動後に```systemctl status httpd```で、ステータスを確認した際```active (running)```になっていることを確認

ファイアウォールの設定を確認

```
# firewall-cmd --list-services --zone=public
ssh dhcpv6-client
```

httpサービスの追加と確認

```
# firewall-cmd --add-service=http --permanent
# firewall-cmd --list-services --zone=public
ssh dhcpv6-client http
```

サービスが追加され、ブラウザでも表示されるようになる

###■SVNサーバー設定
リポジトリ作成

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

次に```/etc/httpd/conf.modules.d```にapacheと連携の為の設定を追記。subversion.confに記述すると書かれている記事が多かったが、私の環境では、subversion.confは存在せず、mod_dav_svnを入れた際に出来上がるのは、10-subversion.confで、それに記述することで動作した。apache2.4から変わったのかな？

```10-subversion.conf
[LoadModule以下に追記↓]
<Location /repos/>
    DAV svn
    SVNParentPath /opt/repos

      AuthType Basic
      AuthName "Input your ID and PassWord"
      AuthUserFile /opt/.htpasswd_svn
      Require valid-user
</Location>
```

ベーシック認証用アカウント作成
私は[.htaccess による認証用　パスワード暗号化ツール](http://www.luft.co.jp/cgi/htpasswd.php)を使わせてもらい、生成したパスワードを```.htpasswd_svn```に記述し、```/opt```下に配置した。


trunk、branches、tagsディレクトリの作成

```
# svn mkdir -m '' file:///opt/repos/products/trunk
# svn mkdir -m '' file:///opt/repos/products/branches
# svn mkdir -m '' file:///opt/repos/products/tags
```

apacheがディレクトリにアクセス出来るように権限の変更を行い、再起動

```
# chown -R apache:apache /opt/repos
# reboot
```

これだけではSElinuxの影響でブラウザ表示できなかった為、SElinuxにapacheのアクセス許可も設定

```
# chcon -R -t httpd_sys_content_t /opt/repos
```

ブラウザで```/IPアドレス/repos/products```と入力するとパスワード認証があり、リポジトリが表示できた。

[![Image from Gyazo](https://i.gyazo.com/ee43d19985807dd736b0a4a9159899ce.png)](https://gyazo.com/ee43d19985807dd736b0a4a9159899ce)


##2.Windows端末へのTortoiseSVNのインストール
TortoiseSVNと日本語変更用の言語パックのインストーラをダウンロードする。[TortoiseSVN](https://ja.osdn.net/projects/tortoisesvn/storage/)のページより、私の場合は、以下をダウンロードした。
Application：TortoiseSVN-1.10.1.28295-x64-svn-1.10.2.msi
Language Packs：LanguagePack_1.10.1.28295-x64-ja.msi

どちらもインストーラ実行後、すべてデフォルトのままボタンを押下していき、インストール完了。
言語パックはインストール完了画面で、チェックボックスにチェックを入れることで、日本語に変更してくれる。
[![Image from Gyazo](https://i.gyazo.com/5132255a8e2fd96410dc8706df842690.png)](https://gyazo.com/5132255a8e2fd96410dc8706df842690)


設定を確認すると日本語になっていることが確認できた。
[![Image from Gyazo](https://i.gyazo.com/40c2dbefd444f598b1f9dd73346c83d5.gif)](https://gyazo.com/40c2dbefd444f598b1f9dd73346c83d5)

最後にSVNサーバのリポジトリにアクセスしてみた
![image.png](https://qiita-image-store.s3.amazonaws.com/0/235933/2c285535-1c68-1b23-dc37-551dccada0cd.png)

無事に表示されることを確認した。
以上


##参考資料
[CentOS7にsvnサーバをインストールする (apache編)](http://www.matsubarasystems.com/centos/centos7-svn-apache)

[httpでアクセスできるSubversionサーバーを構築する](https://internalservererror.info/2018/04/20/http%E3%81%A7%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%A7%E3%81%8D%E3%82%8Bsubversion%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B/)

[TortoiseSVN ダウンロードとインストール](https://wiki.tracpath.com/TortoiseSVN/%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%A8%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)