liunx服務搭建之SVN伺服器搭建、授權及http訪問設定(CentOS 7)
環境:
svnserve, version 1.7.14,CentOS 7
摘要說明:
svn伺服器往往是在window系統下使用VisualSVN搭建伺服器;本篇文章主要講述在liunx下如何搭建svn伺服器及相關授權管理和http訪問設定;
步驟:
1.搭建SVN伺服器
a.安裝SVN服務
使用yum命令安裝svn服務:
yum install subversion
檢視是否安裝成功:
svnserve --help
b.建立repository
建立repository目錄:
mkdir -p /home/svn/svnrepos
使用svnadmin命令建立repository:
svnadmin create /home/svn/svnrepos
開啟該目錄檢視目錄結構:
cd /home/svn/svnrepos
ls
conf db format hooks locks README.txt
2.建立賬戶及授權
a.建立使用者
在上述目錄下通過編輯/conf/passwd來新增使用者:
vi /conf/passwd
cc=111111
即建立好使用者cc密碼為111111
b.使用者授權
通過編輯/conf/authz來進行使用者授權:
vi /conf/authz
[/]
cc=rw
即授權使用者cc讀寫許可權:rw-讀寫;r-只讀;
[/]是授權根目錄,
其他可參考authz.config檔案:
[groups]為組定義,可以在該組下加很多使用者,以,分割,
但是該使用者資料必須在/homd/svn/conf/pwd.conf中定義好,
[/]表示根目錄以下的許可權定義
[repos1:/]表示倉庫下的許可權定義
如果要分專案,則以此規則類推:
如:[repos1:/aaa]則表示倉庫下的aaa專案的許可權定義。
@admin表示admin這個組下的使用者許可權。
user1=r表示user1這個使用者的許可權。
c.svn配置
通過編輯/conf/svnserve.conf來進行使用者授權,可將下面幾個選項根據情況設定:
anon-access = read #匿名使用者可讀
auth-access = write #授權使用者可寫
password-db = passwd #使用哪個檔案作為賬號檔案
authz-db = authz #使用哪個檔案作為許可權檔案
realm = /home/svn/svnrepos # 認證空間名,版本庫所在目錄
3.啟動svn
通過命令svnserve -d -r啟動svn服務:
svnserve -d -r /home/svn/svnrepos
停止svn服務:
killall svnserve
svn預設埠為3690;
阿里雲可通過設定該埠對外即可訪問;其他伺服器可通過設定防火牆開啟訪問:
vi /etc/sysconfig/iptables-config
-A INPUT -i eth0 -p tcp -m tcp --dport 3690 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 3690 -j ACCEPT
儲存配置,重啟防火牆:
service iptables save
service iptables restart
但此時只能夠通過svn://ip訪問;
4.配置Apache
a.安裝apache及module
安裝apache(httpd):
yum install httpd
安裝必備元件:
yum install mod_dav_svn
yum install mod_authz_svn
b.建立加密授權
建立加密授權(因上述svn的授權未加密,如httpd的授權不符):
先建立授權檔案
touch /home/svn/svnrepos/conf/accesspwd
再建立使用者,建立使用者後重復輸入密碼:
htpasswd /home/svn/svnrepos/conf/accesspwd xx
c.配置代理
配置https代理檔案:
touch /etc/httpd/conf.d/subversion.conf
使用vi命令寫入:
<Location /svn/>
DAV svn
SVNListParentPath on
SVNParentPath /home/svn/
AuthType Basic
AuthName "Subversion repos"
AuthzSVNAccessFile /home/svn/svnrepos/conf/authz
AuthUserFile /home/svn/svnrepos/conf/accesspwd
Require valid-user
</Location>
啟動svn:
service httpd restart
使用http://xxx.xxx.xxx.xxx/svn/訪問