SVN安裝及配置
SVN安裝:yum install subversion -y
5.1 配置并啟動svn
第一步建立存儲目錄
建立svn版本庫資料存儲根目錄(svndata)及使用者、密碼權限目錄(svnpasswd)
mkdir -p /application/svndata 資料存儲的根目錄
mkdir -p /application/svnpasswd 使用者、密碼 權限目錄
第二步啟動SVN
啟動svn服務指定服務的svn根目錄
svnserve -d -r /application/svndata --pid-file=/application/svndata/svn.pid
提示:pid 的參數可加可不加
可以檢視svnserver 指令幫助,了解相關啟動參數
[[email protected] /]# svnserve --help
[[email protected] ~]# svnserve --help
用法: svnserve [-d | -i | -t | -X] [options]
有效選項:
-d [--daemon] : 背景模式
-i [--inetd] : inetd 模式
-t [--tunnel] : 隧道模式
-X [--listen-once] : 監聽一次方式(調試用)
-r [--root] ARG : 服務的根目錄
-R [--read-only] : 強制隻讀;覆寫版本庫配置檔案
--config-file ARG : 從檔案 ARG 讀取配置
--listen-port ARG : 監聽端口
[方式: daemon, listen-once]
--listen-host ARG : 監聽主機名稱或IP位址
[方式: daemon, listen-once]
-T [--threads] : 使用線程代替程序 [方式: daemon]
--foreground : 在前台運作(調試用)
[方式: daemon]
--log-file ARG : svnserve 日志檔案
--pid-file ARG : 寫程序 PID 到檔案 ARG
[方式: daemon, listen-once]
--tunnel-user ARG : 隧道使用者名(預設是目前UID對應的使用者名)
[方式: tunnel]
-h [--help] : 顯示本幫助
--version : 顯示程式版本資訊
檢視svn程序
[[email protected] /]# ps -ef|grep svn
檢視端口:
[[email protected] /]# netstat -lntup|grep svn
建立項目的版本庫
建立一個新的subversion 項目sadoc
[[email protected] /]# svnadmin --help 指令使用
[[email protected] /]# svnadmin help create 指令幫助
建立svn的項目執行個體(svn版本庫)
mkdir /application/svndata/sadoc1
svnadmin create /application/svndata/sadoc1 #在上面建立的svn資料目錄下,建立項目
tree /application/svndata
[[email protected] /]# cd /application/svndata/sadoc/conf/
[[email protected] conf]# ll
total 12
-rw-r--r-- 1 root root 1080 Aug 31 17:40 authz 權限管理檔案
-rw-r--r-- 1 root root 309 Aug 31 17:40 passwd 使用者密碼 檔案
-rw-r--r-- 1 root root 2279 Aug 31 17:40 svnserve.conf 主配置檔案
[r[email protected] conf]# cp svnserve.conf svnserve.conf.ori 備份主配置檔案
[[email protected] conf]# cp authz passwd /application/svnpasswd/ 将模闆檔案拷貝過去
[[email protected] conf]# cd /application/svnpasswd/
[[email protected] svnpasswd]# chmod 700 *
[[email protected] svnpasswd]# ll
total 8
-rwx------ 1 root root 1080 Aug 31 17:54 authz
-rwx------ 1 root root 309 Aug 31 17:54 passwd
ro[email protected] conf]# cp svnserve.conf ./svnserve.conf.back
[[email protected] conf]# cd /application/svnpasswd/
[[email protected] svnpasswd]# chmod 700 *
[[email protected] conf]# vim svnserve.conf
修改的内容如下:
12 anon-access = none (匿名使用者隻讀,也可以設成none,不可通路)
13 auth-access = write
20 password-db = /application/svnpasswd/passwd #這樣修改的目的是便于統一管理,以後所有的項目密碼都放在這個目錄下 (svn密碼檔案,如果有多個項目,建議将該檔案放到公共位置)
27 authz-db = /application/svnpasswd/authz #這樣修改的目的是便于統一管理,以後所有的項目認證都放在這個目錄下了(目錄權限檔案,建議同上)
real = My First Repository (認證域,相同認證域下的項目使用相同的passwd和authz,暫時不用理會)
提示:
1. 等号前為svn賬号,等号後為svn密碼,密碼是明文密碼,注意密碼權限
2. 更改svnserver.conf 時,需要重新開機svn,更改authz,passwd檔案時不需要重新開機svn服務
接下來,passwd檔案中添加明文的使用者名/密碼。authz檔案中設定别名和使用者組,并針對不同目錄 對不同的使用者或組配置設定權限(r,w,rw)。設定權限時,使用者組前面要加@,别名前面要加&。
這樣配置好後,就可以通過svn://來通路了。
啟動
svnserve -d -r /application/svndata/
關閉svn
kill -9 `ps -ef |grep svn|grep -v grep|awk '{print $2}' -v: 排除grep
[[email protected] svnpasswd]# cat authz
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[sadoc1:/]
zhang = rw
qiong = rw
[[email protected] svnpasswd]#
===============
上面是svn的權限配置檔案,
注意:
權限配置檔案中出現的使用者名必須要在使用者配置檔案中出現,也就是必須要在passwd 檔案中定義。
對權限配置檔案的修改使立刻生效的,不必重新開機svn伺服器
使用者組格式:
[groups]
組名 = username1,username2,username3,...
其中,1個使用者組可以包含一個或多個使用者,使用者和使用者之間用逗号分隔
版本庫目錄
[<版本庫>:/項目/目錄]
@<使用者組名> = <權限>
<使用者組> = <權限>
其中,方框内部分有多種寫法
[/],表示根目錄及根目錄下面的目錄,根目錄是svnserve啟動時指定的,我們指定為/application/svndata,[/]就表示對全部版本庫設定權限。
[repos:/]表示對版本庫repos設定權限
[repos:/sadoc]表示對版本庫repos中的sadoc項目設定權限;
[repos:/sadoc]/lvnian]表示對版本庫repos中的sadoc項目的lvnian目錄設定權限;
權限主體可以是使用者組、使用者和*,使用者組在前面需要加@,*表示全部使用者
authz中每個參數都要頂格寫,開頭不能有空格
對于組,必須要以@開頭加組名,使用者則不需要加@開頭
用戶端下載下傳位址:
http://tortoisesvn.net/downloads.html
在windows中下安裝就一路下一步安裝。即可
svn用戶端連接配接伺服器的方法,賬号及密碼:
svn://IP/svn項目名稱
如
svn://ip/sadoc1
使用者名:lvnian01
密碼:lvnian
5.7 windows用戶端軟體測試
http://tortoisesvn.net/downloads.html 下載下傳svn用戶端軟體
安裝好用戶端之後,在桌面建立一個svndata的檔案夾選擇svndata檔案夾,選擇checkout
點選ok,輸入使用者名和密碼就 可以送出和下載下傳檔案
SVN+ apache
yum -y install mod_dav_svn
配置 1.建立版本庫
# mkdir -pv /svn/date
--建立主目錄
# svnadmin create /svn/date/www
--建立倉庫
2.更改權限
# chmod -R 700 /svn/date/
--修改庫的其他人無權限
# chown -R apache:apache /svn/date/
--修改庫的所屬
3.更改apache配置
#vim /etc/httpd/conf/httpd.conf
加入以下内容
<Location /svn> (apache下的位置)
DAV svn
SVNPath /home/svn/myproject (指明資源庫的路徑)
或
SVNParentPath /home/svn (如果有多個庫,使用該選項)
SVNListParentPath on (打開這個選項可以列出ParentPath下面的所有庫)
AuthType Basic (認證類型為基本認證 )
AuthName "Subversion Repository" (認證名稱,将在IE界面彈出一個對話框,其标題)
AuthUserFile /etc/apache2/dav_svn.passwd (認證密碼檔案)
# AuthzSVNAcessFile /etc/apache2/dav_svn.authz (目錄權限檔案)
Require valid-user (要求驗證使用者,即不能匿名通路)
</Location>

5. 通過sudo htpasswd -c /etc/apache2/dav_svn.passwd abc建立使用者abc并按照提示設定密碼,網頁認證的時候使用該使用者名和密碼登入。後面再添加使用者的時候去掉-c選項。
配好以後就可以通過Http頁面來通路SVN了。
# service httpd start
# svnserve -d -r /svn/date/
報錯處理:
正在啟動 httpd:httpd: Could not reliably determine the server's fullyqualified domain name, using localhost.localdomain forServerName
(98)Address already in use: make_sock: could not bind to address[::]:80
(98)Address already in use: make_sock: could not bind to address0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
解決方法:殺了從啟
ps -ef | grep httpd |awk '{print $2}' | xargs kill -9
2.如果出現,這樣的錯誤資訊,“svnserve: 不能綁定伺服器套接字: 位址已經被使用”
那先把svnserve程序幹掉。
具體做法是
$ ps -aux #檢視程序,svnserve的pid為16663
$ kill -9 16663 #幹掉svnserve
再次運作$ svnserve -d -r /var/www/svn
轉載于:https://blog.51cto.com/feibendeqie/1712444