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 狀態