天天看點

SVN-serve支援httpd安裝及常用指令

 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>

SVN-serve支援httpd安裝及常用指令

 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

繼續閱讀