您当前的位置: 站长圈 > 技术文章 > 服务器技术 > 在debian里搭建svn服务器

在debian里搭建svn服务器

来源: 作者:adminzzq 点击: 0

1. 安装所需软件

apt-get install subversion subversion-tools apache2 libapache2-svn

2. 创建存放的父路径

mkdir /home/svn
 
 
3. 设置目录权限:
 
chown -R www-data:www-data /home/svn/*
chmod -R 770 /home/svn/*
 
4.通过httpp方式访问subversion
 
 
上面已经安装好了apache2和需要的组件.
 
修改配置文件:/etc/apache2/mods-anable/dav_svn.con
 
# dav_svn.conf - Example Subversion/Apache configuration
# For details and further options see the Apache user manual and
# the Subversion book.
 
# <Location URL> ... </Location>
# URL controls how the repository appears to the outside world.
# In this example clients access the repository as http://hostname/svn/
<Location /svn>                                 #设置访问路径
 
  # Uncomment this to enable the repository,
   DAV svn                                      #启用
 
  # Set this to the path to your repository
    #SVNPath /data/subversion                      #设置储存库路径,仅支持单个储存库,该路径要可被Apache进程访问。
  SVNParentPath /home/svn                #如果subversion下有多个储存库,则用SVNParentPath
  # The following allows for basic http authentication.  Basic authentication
  # should not be considered secure for any particularly rigorous definition of
  # secure.
 
  # to create a passwd file                      #按下面的步骤创建Apache用户验证文件
  # # rm -f /etc/apache2/dav_svn.passwd
  # # htpasswd2 -c /etc/apache2/dav_svn.passwd dwhedon
  # New password:
  # Re-type new password:
  # Adding password for user dwhedon
  # #
  # Uncomment the following 3 lines to enable Basic Authentication   
AuthType Basic                                #启用Apache基础验证
    AuthName "Subversion Repository"             #设置验证框标题
    AuthUserFile /etc/apache2/dav_svn.passwd     #指定验证用户文件名
  # Uncomment the following line to enable Authz Authentication
   AuthzSVNAccessFile /etc/apache2/dav_svn.authz  #启用目录级别授权,dav_svn.authz是授权配置文档
 
  # The following three lines allow anonymous read, but make
  # committers authenticate themselves.
 
  #<LimitExcept GET PROPFIND OPTIONS REPORT>     #允许匿名访问,不允许Commit,不能与AuthzSVNAccessFile同时使用
     Require valid-user                          
  #</LimitExcept>
 
</Location>

5. Apache访问权限设置

设置用户口令:

htpasswd -c -m /etc/apache2/dav_svn.passwd aq

#首次创建文件的时候用-c,后面添加则用-d,不然-c会把之前的覆盖掉;按提示输入密码即可

 

6. 设置访问目录的权限

目录的权限配置是在”/etc/apache2/dav_svn.authz”这个文件里面,

[groups]
admin=stephenchan, 
otheradminuser=endlesscode, 
otheruser
[repository:/]
*=
@admin=rw
[repository:/test]
endlesscode=rw
[repository:/demo]
endlesscode=rw

因为设置的是多个repositories的,所以在设定访问的目录的时候也是分开设置的。这里我在”/home/svn/test”目录下创建了demo和test这2个svnrepository,分别设置了rw权限。”*=”这个是将所有的用户权限清空,”*”代表所有用户。

要注意的是,如果只设定单个的repository,应该直接使用”[/path/to/dir]“而不是用”[repository:/project/path/to/dir]

7. 创建svn repository

写个脚本来创建就比较方便了

#!/bin/bash# 
create_svn.sh
echo "create svn repos : "$1
mkdir $1
svnadmin create $1
chown -R www-data:www-data $1

8. 测试

初次创建的revision是0的,可以”svn cohttp://hostname:8080/demo”来checkout下来,然后修改一下,再commit上去就变成1了。

虽然基本搭起来,但是传输加密这个还没有弄,还有post-commit,email这些都没有设置,找个时间再弄吧。