ubuntu下svn+apache2安装配置

网上很多文章东少一点,西少一点,无法完整配置成功,花了几天时间才整理成功。

1.程序安装(采用apt-get install安装)
    sudo apt-get install apache2
    sudo apt-get install subversion   
    sudo apt-get install libapache2-svn   

2.创建仓库父目录
    sudo mkdir /home/svn

3.创建仓库
      所有的创建都放在刚刚创建的仓库父目录下
      创建一个示例仓库:project
      sudo svnadmin create /home/svn/project

4.处理仓库目录权限(linux中用户对目录、文件的访问必须拥有相关权限)
    a.添加subversion组:
          sudo addgroup subversion

     b.给相关用户赋予文件访问权限:
         chown -R www-data:subversion /home/svn 修改文件夹权限
         chmod -R g+rws /home/svn  修改同组权限

5.修改apache配置文件
      a.从创建的tools仓库复制权限,密码文件做为全局共用权限,密码文件

            sudo cp /home/svn/project/conf/authz /home/svn           

            sudo cp /home/svn/project/conf/passwd /home/svn

      b.修改dav_svn.conf配置文件

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

            修改文件中<Location /svn></Location>之间的部分为

            <Location /svn>
        DAV svn
        SVNParentPath /home/svn
        SVNListParentPath on
        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile /home/svn/passwd
        <IfModule mod_authz_svn.c>
        AuthzSVNAccessFile /home/svn/authz
        </IfModule>
        Require valid-user
        </Location>
    
       c.往/home/svn/passwd里添加用户
        sudo htpasswd -c /home/svn/passwd admin
        根据提示输入用户密码admin,搞定
    新增用户时不要加 -c

6.重启apache
    sudo /etc/init.d/apache2 restart


7.权限设置

SVNParentpath和SVNPath在<Location>...</Location>里不能同时存在。

假设仓库目录结构如下:
 
/svn/project/

        |----aa

        |----|----bb

        |----|----cc

其中SVNPath /svn/project/ , SVNParentPath /svn 。

那么就有两种情况:

 (一)使用SVNParentPath

在authz文件里这样设置目录访问权限:

[groups]
manager = admin,cman  #manager为组,admin,cman为组内用户
anyuser = skyman  #anyuser是组,skyman为组下的用户

[project:/aa/bb]
@manager = rw  #admin组的用户具有读写权限
* =          #其他用户无权访问
 
[project:/aa/cc]
@manager= rw
@anyuser = rw
* =

[project:/]
@manager = rw   #manager组的用户可以访问/svn/project/下的所有目录,并且有读写权限
skyman = r     #skyman用户只有读取权限,不能修改/svn/project/目录下的文件

(二)使用SVNPath

在authz文件里这样设置目录访问权限:

[/aa/bb]
@manager = rw  #admin组的用户具有读写权限
* =          #其他用户无权访问
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值