Ubuntu下配置SVN服务器

部门最近要在Ubuntu下搭建一个SVN服务器,刚刚完成了搭建工作,所以就自己的搭建工作进行一下简单的概括和介绍。由于部门不能连接外网,所以安装 的软件要自己单独下载。算起来,前前后后一共安装了差不多17个软件,其中核心软件有4个apache2、libapache2-svn、 subversion、subversion-tools。

如果可以使用网络的话,安装就要简单得多。

安装Subversion

  1 #apt- get install subversion
  2 #apt- get install subversion-tools

安装Apache

  1 #apt- get install apache2
  2 #apt- get install libapache2-svn


下面就对apache2和subversion进行一系列的配置工作:

1.创建一个用户组来拥有文件仓库所在的目录

  1 #sudo addgroup subversion
  2 #sudo usermod -G subversion -a www-data
  3 #cat /etc/group|grep subversion


2.创建SVN的版本仓库

  1 #sudo mkdir /home/svn
  2 #sudo mkdir /home/svn/src 
  3 #cd /home/svn

  创建组的权限
  1 #/home/svn#sudo chown -R root:subversion src
  2 #/home/svn#sudo chmod -R g+rws src


  创建SVN的版本仓库

  #sudo svnadmin create /home/svn/src


3.Apache配置

    加载动态库

  #sudo gedit /etc/apache2/mods-available/dav_svn.load
  LoadModule dav_svn_module /usr/lib/mod_dav_svn.so

    LoadModule authz_svn_module /usr/lib/mod_authz_svn.so  

    (如果已经加载了,就可以不用添加进去) 


    修改Apache的配置文件 

  #sudo gedit /etc/apache2/mods-available/dav_svn.conf


    在文件中添加以下内容: 

  1 <Location /svn>
  2 DAV svn
  3 SVNParentPath /svn
  4 AuthType Basic
  5 AuthName "Subversion Repository"
  6 AuthUserFile /etc/subversion/dav_svn.passwd(存放的用户名和经MD5加密的密码)
  7 AuthzSVNAccessFile /etc/subversion/dav_svn.authz(存放组的信息和指定用户的权限授予情况)
  8 <LimitExcept GET PROPFIND OPTIONS REPORT>(如果想每次登陆都输入密码请把这个引掉)
  9 Require valid-user
 10 </LimitExcept>
 11 </Location>


<Location /svn>    意思是Subversion版本可用的URL是http://SubversionServerIP/svn

DAV svn   告诉Apache是哪个模块响应哪个URL的请求,在这里是Subversion模块

SVNParentPath  /home/ svn   告诉Subversion需要查看的版本库在/home/svn之下。 如果不希望为每个单独的项目都进行单独的设置,可以把所有项目都存放在统一的资源库目录,使用SVNParentPath指令来指定存放所有项目的路径。否则使用SVNPath

SVNPath    单版本库时使用此项指明版本库的路径,但在多版本库中不要使用此项

AuthType Basic   认证类型为基本认证,就是用户名和密码

AuthName "Subversion repository"   认证名称,将在浏览器界面弹出一个对话框,标题为Subversion repository

AuthUserFile /etc/subversion/dav_svn.passwd   指定使用的认证密码文件,即访问版本库用户的文件,用apache的htpasswd命令生成

AuthzSVNAccessFile /etc/subversion/dav_svn.authz   设定访问版本库权限的文件

Require valid-user   要求验证用户,即不能匿名访问。如果没有该语句,则只能第一个用户可以访问新建库


       配置完成后,重启apache

   #sudo /etc/init.d/apache2 restart


4.创建/etc/subversion/passwd文件,该文件包含了用户授权的详细信息

  #sudo htpasswd -c /etc/subversion/passwd 要创建的用户名

     提示输入密码,当输入完成,该用户就建立了。如果继续添加用户的话,重复上面的语句,去掉"-c"

     配置权限配置文件

  #sudo gedit /etc/subversion/dav_svn.authz


    在文件中添加以下内容:              

  1 [groups]
  2 administrator=admin
  3 user=user1,user2
  4 
  5 [src:/]
  6 @administrator=rw  ####为管理员用户administrator赋予读写权限
  7 @user=rw           ####为用户user赋予读写权限
  8 *=r                ####其他用户只有读的权限,没有“r”表示禁止访问
  9 
 10 [doc:/]
 11 @administrator=rw  ####为管理员用户administrator赋予读写权限
 12 user1=r            ####用户user1具有读的权限
 13 *=               
    其中* = 表示其它所有用户都没有任何权限。@表示用户组,*表示所有用户,[/]表示全部目录。 

5.测试服务器是否创建成功,并调试可能出现的错误

访问SVN文件仓库
 
   #svn co http: // localhost/svn/src /home/src --username 创建的用户名 --password 用户对应的密码

可能出现的问题:

1.一个新的版本库被创建出来之后,用svn import命令导入代码的过程中,出现了Permission denied错误,这时需要在库目录下sudo chmod -R root:subversin /home/svn/src设置权限。

2.出现错误:"svnserve.conf:102:Option expected"
原因一般是,subversion无法识别配置文件中的前置空格。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值