系統環境:centos7.2linux
第一步:經過yum命令安裝svnserve,命令以下:windows
yum -y install subversion
此命令會全自動安裝svn服務器相關服務和依賴,安裝完成會自動中止命令運行centos
若需查看svn安裝位置,能夠用如下命令:安全
rpm -ql subversion
第二步:建立版本庫目錄(此僅爲目錄,爲後面建立版本庫提供存放位置)服務器
選擇在var路徑下建立版本庫,當前處於根目錄下,一次性建立以下:tcp
mkdir /var/svnrepos
第三步:建立svn版本庫svn
在第二步創建的路徑基礎上,建立版本庫,命令以下:測試
svnadmin create /var/svnrepos/xxxx
(xxxx爲你預期的版本庫名稱,可自定義)阿里雲
建立成功後,進入xxxx目錄下centos7
cd /var/svnrepos/xxxx
進入目錄,能夠看見以下文件信息:
total 24 drwxr-xr-x 2 root root 4096 May 2 13:48 conf drwxr-sr-x 6 root root 4096 May 2 13:48 db -r--r--r-- 1 root root 2 May 2 13:48 format drwxr-xr-x 2 root root 4096 May 2 13:48 hooks drwxr-xr-x 2 root root 4096 May 2 13:48 locks -rw-r--r-- 1 root root 229 May 2 13:48 README.txt
第四步:配置修改
進入已經建立好的版本庫目錄下,也就是前文說建立的xxxx,進入conf
cd /var/svnrepos/xxxx/conf
conf目錄下,一共存放三份重要的配置文件,以下:
total 12
-rw-r--r-- 1 root root 1080 May 2 13:48 authz -rw-r--r-- 1 root root 309 May 2 13:48 passwd
-rw-r--r-- 1 root root 3090 May 2 13:48 svnserve.conf
authz:負責帳號權限的管理,控制帳號是否讀寫權限
passwd:負責帳號和密碼的用戶名單管理
svnserve.conf:svn服務器配置文件
1.編輯 authz 文件(注意:[/]也是必須的)
[/]:表示根目錄,即 /var/svnrepos
luo = rw:表示用戶luo對根目錄具備讀寫權限。
2.編輯 passwd 文件
如上所示,用戶名爲:luo,認證密碼爲:luo123456
3.編輯 svnserve.conf 文件(注意:配置的前面不能有空格,必定要頂格寫)
anon-access = none:表示禁止匿名用戶訪問。
auth-access = write:表示受權用戶擁有讀寫權限。
password-db = passswd:指定用戶名口令文件,即 passwd 文件。
authz-db = authz:指定權限配置文件,即 authz 文件。
realm = /var/svnrepos:指定認證域,即 /var/svnrepos 目錄。
第五步:防火牆開啓(這裏以iptable防火墻爲例)
多數狀況下服務器安裝完成,配置完成後,沒法鏈接svn服務器,均是防火牆問題【注意:若是是阿里雲,騰訊雲的服務器,還需在安全組添加端口開啓規則】
vi /etc/sysconfig/iptables
添加配置信息
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
保存退出
systemctl restart iptables.service #重啓防火牆使配置生效
六:啓動svn服務器
svnserve -d -r /var/svnrepos
啓動成功後,可用ps -aux查看服務啓動是否成功
ps -ef | grep 'svnserve'
七:客戶端訪問svn服務器
在windows客戶端,輸入地址:svn://ip地址:3690/xxxx (iP地址爲你linux的ip,xxxx爲前文建立的版本庫名稱,3690爲svn默認端口)
彈出輸入用戶名和密碼,輸入便可訪問
或者在linux服務器輸入命令測試:
svn co svn://ip地址:3690/xxxx
以下爲例子:
遇到的問題小結:
問題1:執行svn命令:svn co svn://ip地址:3690/xxxx報錯以下
這是由於修改svnserve.conf時,打開註釋時,配置的前面有空格,應該頂格寫。修改後便可
問題2:輸入帳號密碼後,提示 svn: Authorization failed解決辦法
把authz 文件 [/] 改成 [\] 試試