Linux(Centos6.5)下安裝svn服務器,並通過http訪問

inux安裝svn其實很容易,個人覺得難就難在配置上,反覆配置,琢磨,查找相關資料,總算是成功了。。

安裝:

  1. 安裝svn,一般情況下,選擇yum方式安裝還是比較簡單的。

?
1
2
[root@moshi ~]# yum -y install mod_dav_svn
#會自動安裝mod_dav_svn及其依賴包:mod_dav_svn-1.6.11-9,neon-0.29.3-2,pakchois-0.4-3.2,subversion-1.6.11-9

直接安裝這個就能把svn服務器直接KO了。

2.安裝httpd

?
1
[root@moshi ~]# yum -y install httpd

一般情況下,linux服務器是有httpd服務的,你可以檢查下,如果沒有則安裝。

檢查方法:

?
1
[root@moshi ~]# vi /etc/httpd/conf.d/subversion.conf

安裝完svn後看是否有該目錄&文件,如果存在則不需要安裝httpd了。

3.安裝完SVN,接下來就是配置了。

配置:

1、配置svn倉庫

?
1
2
3
4
5
6
7
8
#創建svn目錄
[root@moshi ~]# mkdir -p /home/svn/repos1  #倉庫1
[root@moshi ~]# mkdir -p /home/svn/repos2  #倉庫2
#可以任意配置,任意指定你喜歡的目錄
#建立svn版本庫
[root@moshi ~]# svnadmin create /home/svn/repos1
[root@moshi ~]# svnadmin create /home/svn/repos2
#有多少個倉庫就執行多少次該命令,只需要換最後的名字即可

2、修改SVN版本庫配置文件

?
1
[root@moshi ~]# vi /home/svn/repos1/conf/svnserve.conf

修改文件結果如下:

?
1
2
3
4
5
6
[general]
anon-access = none    
auth-access = write
password-db = /home/svn/conf/pwd.conf    #指向用戶配置文件
authz-db = /home/svn/conf/authz.conf     #指向權限配置文件
realm = repos1                           #指向svn倉庫地址

備註:其他倉庫配置和該配置相同,只需要修改倉庫路徑。

3.配置svn用戶和權限

?
1
2
3
4
5
6
7
8
9
10
11
12
[root@moshi ~]# vim /home/svn/conf/pwd.cof
[root@moshi ~]# vim /home/svn/conf/authz.conf
#這是2個步驟,我這裏爲更好的閱讀,寫在一起
1.配置用戶
由於這個配置是我自定義的,所以要先vim創建該文件,也可以用其他方式創建。
[root@moshi ~]# vim /home/svn/conf/pwd.conf
#保存退出
[root@moshi ~]# htpasswd -c /home/svn/conf/pwd.conf admin
#根據提示輸入密碼,第一個用戶才需要加-c,後面的用戶不需要-c
[root@moshi ~]# htpasswd /home/svn/conf/pwd.conf test
[root@moshi ~]# vi /home/svn/conf/pwd.conf
在用戶最上方加上[users]

加上[users]這一步是很重要的,因爲用htpasswd的方式加用戶會覆蓋掉[users],所以每次加完用戶需要回去補一下該節點

?
1
2
3
4
5
6
7
8
9
10
2.配置權限
[root@moshi ~]# vim /home/svn/conf/authz.conf
文件內容如下:
[groups]
admin=user1,user2
test=user3
[/]
@admin=rw
[repos1:/]
user3=r

解釋:[groups]爲組定義,可以在該組下加很多用戶,以,分割,

但是該用戶數據必須在/homd/svn/conf/pwd.conf中定義好,

[/]表示根目錄以下的權限定義

[repos1:/]表示倉庫下的權限定義

如果要分項目,則以此規則類推:

如:[repos1:/aaa]則表示倉庫下的aaa項目的權限定義。

@admin 表示admin這個組下的用戶權限。

user1=r 表示user1這個用戶的權限。

權限類型:r,w,rw 分別表示只讀,只寫,讀寫如果是user1= 這種空情況則表示沒有

OK,到此svn配置完成。我們可以把默認的配置文件刪除。

?
1
2
3
[root@moshi ~]# rm -rf /home/svn/repos1/conf/passwd
[root@moshi ~]# rm -rf /home/svn/repos2/conf/authz
##多個倉庫則刪除多個倉庫對應的文件即可

4.建立啓動svn的用戶

?
1
2
3
4
[root@moshi ~]# useradd svn                    #如果提示svn賬戶已存在,則執行以下命令
[root@moshi ~]# passwd svn                     ##根據提示修改下密碼,不能過於簡單,可使用常用密碼
[root@moshi ~]# chown -R svn:svn /home/svn/    ##允許用戶svn訪問版本庫
[root@moshi ~]# chmod –R o+rw /home/svn        ##解決windows檢出提交提示/home/svn/db/txn-current-lock’錯誤

5.配置svn的端口

?
1
[root@moshi ~]# vi /etc/httpd/conf/httpd.conf

找到

#Listen 12.34.56.78:80這一行,

Listen 9999  ##9999就是svn的端口,默認是80,你可以修改成你自己想要的。不建議使用默認80端口

5.配置httpd

?
1
[root@moshi ~]# vi /etc/httpd/conf.d/subversion.conf

修改文件內容爲:

<Location /svn>

    DAV svn

    SVNListParentPath on

    SVNParentPath /home/svn

    AuthType Basic

    AuthName "Authorization"

    AuthUserFile /home/svn/conf/pwd.conf                    ##對應你的用戶配置文件

    AuthzSVNAccessFile /home/svn/conf/authz.conf      ##對應你的權限配置文件

    Require valid-user

</Location>

保存退出!

重啓httpd服務。

?
1
2
3
[root@moshi ~]# service httpd restart
停止 httpd:                                               [確定]
正在啓動 httpd:                                           [確定]

出現以上字樣,表名httpd的配置已經成功啓動成功。

6.啓動svn

?
1
[root@moshi ~]# svnserve -d -r /home/svn/

7.查看svn服務是否正常

?
1
2
3
4
[root@moshi ~]# ps aux|grep svn
##出現以下內容說明svn服務已經成功啓動
root      8610  0.0  0.0 152864   740 ?        Ss   11:25   0:00 svnserve -d -r /home/svn/repos1/
root     13128  0.0  0.0 103252   876 pts/0    S+   14:00   0:00 grep svn

8.進入瀏覽器訪問。

在瀏覽器中輸入:服務器Ip+端口+httpd配置中的<Location /svn>。

如:http://192.168.1.1:9999/svn

會提示你輸入用戶名密碼。


9.總結

嗯,沒啥太多總結,這些內容都是我從網上綜合多個帖子試驗出來的結果,希望能給你一些幫助。

發佈了46 篇原創文章 · 獲贊 5 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章