linux安裝svn其實很容易,我的以爲難就難在配置上,反覆配置,琢磨,查找相關資料,總算是成功了。。html
安裝svn,通常狀況下,選擇yum方式安裝仍是比較簡單的。java
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了。linux
2.安裝httpdapache
1
|
[root@moshi ~]
# yum -y install httpd
|
通常狀況下,linux服務器是有httpd服務的,你能夠檢查下,若是沒有則安裝。vim
檢查方法:windows
1
|
[root@moshi ~]
# vi /etc/httpd/conf.d/subversion.conf
|
安裝完svn後看是否有該目錄&文件,若是存在則不須要安裝httpd了。centos
3.安裝完SVN,接下來就是配置了。瀏覽器
一、配置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
#有多少個倉庫就執行多少次該命令,只須要換最後的名字便可
|
二、修改SVN版本庫配置文件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