最全Linux搭建SVN服務端教程
阿新 • • 發佈:2020-11-21
# 文章首推
>- [支付寶介面對接](https://mp.weixin.qq.com/s/SrjZ__VbLi-DFAcqNU9DGg)
>- [高德地圖呼叫](https://mp.weixin.qq.com/s/X_EmWMbUwwAtg8fv6lBfWA)
>- [驗證碼登入](https://mp.weixin.qq.com/s/faDOoXnciWFQW-uo2MMp2A)
>- [QQ郵箱登入](https://mp.weixin.qq.com/s/c2ee5SWr5U677XMlijvU7g)
# 今日主題:Linux搭建SVN服務端
## 簡介
>相信程式設計師對SVN還是不陌生的,雖然現在用Git比較多,但是SVN也是用的,SVN可以做程式碼提交,多人合作,比較重要的,如果你沒有云伺服器,也可以瞭解一下,因為SVN服務端在公司的話,都是放在伺服器上的,我們只需要裝一個客戶端就好了,那麼我們今天就來了解一下SVN服務端怎麼搭建吧
## 環境
- 騰訊雲
- centos7.5
## 實現過程
1、安裝`SVN`,如果你已經安裝了,就不用操作了
```bash
yum install subversion
```
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20201117104310445.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1Rpbmcxa2luZw==,size_16,color_FFFFFF,t_70#pic_center)
2、配置,建立倉庫
>我們這裡在/home下建立一個名為svn的倉庫(repository),以後所有程式碼都放在這個下面,建立成功後在svn下面多了幾個資料夾。
```bash
[root@VM-4-12-centos ~]# cd /home
[root@VM-4-12-centos home]# mkdir svn
[root@VM-4-12-centos home]# svnadmin create /home/svn
[root@VM-4-12-centos home]# ls svn
conf db format hooks locks README.txt
```
`conf`:存放配置檔案的
```bash
authz 是許可權控制檔案
passwd 是帳號密碼檔案
svnserve.conf 是SVN服務配置檔案
```
3、配置`passwd`
```bash
[root@localhost conf]# vi passwd
[users]
king = 123456
test1 = 123456
test2 = 123456
```
上面的例子中我們建立了2個使用者,一個`test1`,一個`test2`,`建議等號前後加一個空格`
4、配置`authz`
```bash
[root@localhost conf]# vi authz
[/]
king = rw
test1 = r
test2 = r
* =
```
上面配置的含義是,`king`對`/home/svn/`下所有檔案具有可讀可寫許可權,`test`只有只讀許可權,除此之外,其它使用者均無任何許可權,最後一行`*=`很重要不能少。
5、配置`svnserve.conf`
```bash
[root@localhost conf]# vi svnserve.conf
開啟下面的5個註釋
anon-access = read #匿名使用者可讀
auth-access = write #授權使用者可寫
password-db = passwd #使用哪個檔案作為賬號檔案
authz-db = authz #使用哪個檔案作為許可權檔案
realm = /home/svn # 認證空間名,版本庫所在目錄
```
6、啟動與停止
```bash
[root@localhost conf]# svnserve -d -r /home/svn(啟動)
[root@localhost conf]#killall svnserve(停止)
```
上述啟動命令中,**-d**表示守護程序, **-r** 表示在後臺執行。停止還可以採用殺死程序的方式:
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20201117110115477.png#pic_center)
7、客戶端連線
這裡使用TortoiseSVN,輸入地址`svn://你的IP` 即可,不出意外輸入使用者名稱和密碼就能連線成功了。
預設埠3690,如果你修改了埠,那麼要記得加上埠號。
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/2020111711041696.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1Rpbmcxa2luZw==,size_16,color_FFFFFF,t_70#pic_center)
8、無法連線,如果這是一臺新的伺服器,那麼一定會報錯,因為他的3690埠沒有開放
我們需要做以下配置就行了
- 開啟雲伺服器的安全策略組,新增開放該埠【這是開啟外網埠】
- 防火牆開啟,並且開放該3690埠【這是開啟內網埠】
輸入` firewall-cmd --list-ports`,檢視防火牆開放了哪些埠,發現沒有開放`3690`埠
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20201117113521206.png#pic_center)
開放埠:
```bash
# --zone 作用域
# --add-port=3690/tcp 新增埠,格式為:埠/通訊協議
# --permanent 永久生效,沒有此引數重啟後失效
[root@VM-4-12-centos ~]# firewall-cmd --zone=public --add-port=3690/tcp --permanent
success
[root@VM-4-12-centos ~]# firewall-cmd --reload #重啟防火牆
success
[root@VM-4-12-centos ~]# firewall-cmd --list-ports
20/tcp 21/tcp 22/tcp 80/tcp 8888/tcp 39000-40000/tcp 888/tcp 6800/tcp 3690/tcp
```
連線成功,good,完美,這應該是最完美的解決方案了
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20201117114430125.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1Rpbmcxa2luZw==,size_16,color_FFFFFF,t_70#pic_center)
歡迎關注:java後端指南