CentOS安裝svn服務器

  • 使用yum命令一鍵安裝
    yum install subversion
    yum install mod_dav_svn
  • 創建SVN數據目錄和配置目錄
    mkdir -p /mnt/svn/data #用來存放版本倉庫的數據
    mkdir -p /mnt/svn/conf #用來存放版本倉庫的配置

其實每個倉庫都有一份獨立的配置文件,可以配置用戶和密碼還有每個用戶的權限,這樣做只是爲了方便在同一份配置文件中管理多個倉庫,當然conf目錄不是必要的,視具體情況而定。

  • 在mnt/svn/data目錄下創建一個doc目錄,並初始化爲倉庫
    mkdir /mnt/svn/data/doc
    svnadmin create /mnt/svn/data/doc #把doc目錄初始化爲倉庫

初始化後doc目錄如下

    root:/mnt/svn/data/doc>ll
    total 16
    drwxr-xr-x. 2 root root   79 Feb 22 22:19 conf
    drwxr-sr-x. 6 root root 4096 Feb 22 22:43 db
    -r--r--r--. 1 root root    2 Feb 22 22:11 format
    drwxr-xr-x. 2 root root 4096 Feb 22 22:11 hooks
    drwxr-xr-x. 2 root root   39 Feb 22 22:11 locks
    -rw-r--r--. 1 root root  229 Feb 22 22:11 README.txt

其中conf目錄存放的就是該倉庫配置文件

    root:/mnt/svn/data/doc/conf>ll
    total 16
    -rw-r--r--. 1 root root 1080 Feb 22 22:11 authz
    -rw-r--r--. 1 root root  309 Feb 22 22:11 passwd
    -rw-r--r--. 1 root root 3110 Feb 22 22:19 svnserve.conf
  • 備份一個svnserve.conf並修改svnserve.conf
    cd /mnt/svn/data/doc/conf
    cp svnserve.conf.default
    vim svnserve.conf

去掉19、20、27、34行的註釋,並修改27行和34行如下

    19 anon-access = read
    20 auth-access = write
    27 password-db = /mnt/svn/conf/passwd #指向配置目錄的配置文件
    34 authz-db = /mnt/svn/conf/authz #指向配置目錄的配置文件
  • 複製doc/conf的authz文件和passwd文件到/mnt/svn/conf下
    cd /mnt/svn/data/doc/conf
    cp authz passwd /mnt/svn/conf
  • 在配置文件目錄下修改配置文件,添加用戶和倉庫權限
    cd /mnt/svn/conf
    vim passwd
    #添加用戶
      6 [users]
      7 # harry = harryssecret
      8 # sally = sallyssecret
      9 linxl = linxl
     10 wangjm = wangjm
     11 wangbm = wangbom

    vim authz
     21 [groups]
     22 # harry_and_sally = harry,sally
     23 # harry_sally_and_joe = harry,sally,&joe
     24 public_document_group = linxl,wangjm,wangbm
     25
     26 # [/foo/bar]
     27 # harry = rw
     28 # &joe = r
     29 # * =
     30
     31 #[repository:/baz/fuz]
     32 # @harry_and_sally = rw
     33 # * = r
     34 [doc:/]
     35 @public_document_group = rw
     36 * =

authz文件24行爲設置用戶分組

34行爲倉庫名和該倉庫下的某個目錄

下面定義該倉庫的該目錄下的組的權限和用戶全選,組名前加@,r爲只讀,rw爲讀寫,* = 表示其他用戶對該倉庫的該目錄沒有讀寫權限

如果有多個倉庫,可以繼續在下面添加,比如

    [doc2:/client/]
    wangbm = r
    * = 

表示倉庫doc2的client目錄,用戶wangbm有讀的權限

  • 啓動SVN服務
    svnserve -d -r /mnt/svn/data #在後臺啓動data下所有的倉庫
    ps aux | grep svn #查看svn服務是否啓動,出現下面的內容即爲成功啓動
    [root:/mnt/svn/conf]# ps aux | grep svn
    root     16931  0.0  0.0 156632   752 ?        Ss   21:13   0:00 svnserve -d -r /mnt/svn/data/
    #另外,關閉svn服務命令
    pkill svnserve
    #也可以使用kill進程號

這時可以在客戶端中使用SVN管理文件了。

  • 最後,可以在SVN服務的啓動和關閉寫成腳本放到/mnt/svn目錄下,在修改了配置文件後可以方便重啓服務
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章