1. 程式人生 > >centos7 SVN伺服器搭建記錄

centos7 SVN伺服器搭建記錄

本問介紹svn伺服器的搭建步驟及配置方法,大部分內容來源於網路,在實際配置過程中也遇到一些坑,在此簡單記錄一下。

安裝

$ sudo yum install subversion

檢視安裝所在目錄
$ which svnserve
可以看到安裝在/usr/bin目錄下
這裡寫圖片描述
檢視版本
$ svnserve –version

建立版本庫

subversion預設以/var/svn作為資料根目錄,可以通過/etc/sysconfig/svnserve修改這個預設位置。

建立一個目錄
$ sudo mkdir svn_test

修改/etc/sysconfig/svnserve將預設目錄改為新建立的/svn_test
OPTIONS=”-r /svn_test”

在該目錄下建立版本庫
$ sudo svnadmin create svn_test/test

$ ll svn_test/
此時可以看到建立的test的版本庫
這裡寫圖片描述

配置版本庫

編輯使用者檔案passwd,新增兩個使用者:admin和guest。

$ vi svn_test/test/conf/passwd
[users]
admin = admin
guest = guest

編輯許可權檔案authz,使用者admin設定可讀寫許可權,guest設定只讀許可權。
$ vi svn_test/test/conf/authz
[/]
admin = rw
guest = r

編輯svnserve.conf:
$ vi svn_test/test/conf/svnserve.conf
[general]
anon-access = none #控制非鑑權使用者訪問版本庫的許可權
auth-access = write #控制鑑權使用者訪問版本庫的許可權
password-db = passwd #指定使用者名稱口令檔名
authz-db = authz #指定許可權配置檔名
realm = spring-hello-world #指定版本庫的認證域,即在登入時提示的認證域名稱

啟動svn服務

$ sudo systemctl start svnserve.service

檢查服務是否啟動成功。
$ ps aux | grep svn
這裡寫圖片描述
通過netstat可以看到SVN打開了3690埠。
$ sudo netstat -tnlp
這裡寫圖片描述

設定成開機啟動。
$ sudo systemctl enable svnserve.service

可以使用客戶端測試一下是否可以checkout

這裡寫圖片描述
若是報許可權不足或者部分檔案沒有訪問許可權,有可能試試將防火牆關閉
用systemctl檢查伺服器的防火牆配置:
$ firewall-cmd –list-all
檢查selinux狀態
/usr/sbin/sestatus -v

1、關閉firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
2、關閉Selinux
編輯 selinux 檔案 vi /etc/sysconfig/selinux
開啟 selinux 檔案後,修改SELINUX=enforcing為SELINUX=disabled
儲存後退出 ,重啟後生效。
臨時設定
setenforce 0 //設定 SELinux 狀態 0為關閉 1 為開啟

getenforce //獲取 SELinux 狀態