linux安裝svn其實很容易,個人覺得難就難在配置上,反覆配置,琢磨,查找相關資料,總算是成功了。。
安裝:
-
安裝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>。
會提示你輸入用戶名密碼。
9.總結
嗯,沒啥太多總結,這些內容都是我從網上綜合多個帖子試驗出來的結果,希望能給你一些幫助。
友情鏈接:
http://www.cnblogs.com/b028/archive/2010/07/23/1867311.html
http://www.aiezu.com/system/linux/linux_centos_yum_apache_svn.html