subversion + apache2 作为版本控制服务器的配置(By Robinvane Suen)

本配置适用于ubuntu (6.06 dapper)

1.首先安装软件,这里需要两个软件包
sudo apt-get install subversion
sudo apt-get install libapache2-svn

2.然后在本机建立一个仓库
subversion的仓库相当于一个保存文件的数据库。假如我们需要把仓库放在/svn则可以执行以下操作:
sudo mkdir -p /svn
sudo svnadmin create /svn #建立仓库
sudo chown -R www-data:www-data /svn #转移目录所有权,允许apache服务器所使用的用户/组(www-data)读写该目录

3.添加apache web服务器的“虚拟目录”
sudo gedit
/etc/apache2/apache2.conf
添加如下一节:


<Location /svn>
DAV svn
SVNPath /svn
AuthType Basic
AuthName "Documentation Team Repository"
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>


然后重启服务器
sudo /etc/init.d/apache2 reload (或者 sudo /etc/init.d/apache2 restart

4.添加帐户
htpasswd2 -c /etc/subversion/passwd [username]
[username]填写你需要的用户名,如果不是第一次添加帐号,则不需要-c参数!此命令会询问你所需要的密码,填入即可。

5.测试
用浏览器浏览http://sever/svn/,看是否可以成功访问。

6. 增加权限
有时候我们需要限制某些用户对目录的访问,比如说我们允许匿名读取目录/svn/a,但是只允许robinvane写它。或者禁止匿名访问目录/svn/b,只允许mpi-developers读写它等等。这个时候我们先修改apache2.conf
sudo gedit /etc/apache2/apache2.conf


<Location /svn>
DAV svn
SVNPath /svn
AuthType Basic
AuthName "Documentation Team Repository"
AuthUserFile /etc/subversion/passwd

#<LimitExcept GET PROPFIND OPTIONS REPORT>
Satisfy Any #先尝试匿名访问
Require valid-user #然后使用用户验证登录访问
#</LimitExcept>
AuthzSVNAccessFile /svn/conf/svn-access-file #访问控制文件,在此文件指定访问控制信息
</Location>



然后建立访问控制文件
touch 

/svn/conf/svn-access-file,内容如下:


[svn:/] #指定名称为svn的仓库的访问权限
@mpi-developers=r #允许组mpi-developers读取所有文件

[svn:/parallel_programming_in_c_with_mpi_example] #指定名称为svn的仓库下的parallel_programming_in_c_with_mpi_example目录的访问权限
@mpi-developers=rw #允许组mpi-developers读写所有文件
*=r #允许匿名读取文件

[svn:/robinvane]
robinvane=rw

[svn:/chenxl]
chenxl=rw

[groups] #指定组
mpi-developers=robinvane,chenxl,ysq,solo #建立一个含有robinvane,chenxl,ysq,solo的组


注意,[svn:/parallel_programming_in_c_with_mpi_example] 不能写成 [svn:/parallel_programming_in_c_with_mpi_example/](最后不要多一个/),否则不行。
修改完成之后使用
sudo /etc/init.d/apache2 restart
重启apache服务器即可

7.修改apache2服务器监听端口

校外是无法访问校内的80和21端口的,所以如果我们想校外也可以访问svn版本库,则需要修改apache2服务器的监听端口,方法是把监听端口放入文件/etc/apache2/ports.conf :

sudo vi /etc/apache2/ports.conf ,默认情况下,这是一个空文件,直接加入一行:

Listen 81

保存,然后重启apache2服务器

sudo /etc/init.d/apache2 restart

即可在81端口上监听服务。

此时,如果在修改服务监听端口之前使用过svn co http://address/resproot 获得过工作目录,则需要修改该工作目录所绑定的版本库地址(可以用svn info查看当前版本库的信息),可以使用以下命令:

svn switch --relocate http://xiao/svn http://xiao:81/svn

第一个地址是原来的版本库地址(用svn info可以看到),后面的是新的版本库地址。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值