Ubuntu server 的SVN服务器安装配置

Ubuntu下SVN服务器安装配置

一、SVN安装

1、安装包

   $ sudo apt-get install subversion


   $ sudo apt-get install libapache2-svn

 libapache2-svn用于http访问

2、服务器配置


(1)、添加svn管理用户及subversion


创建SVN仓库:许多位置都可以放置Subversion文件仓库,其中两个最常用的是:/usr/local/svn以及/home/svn。为了在下面的描述中简单明了,我们假设您的Subversion文件仓库放在/home/svn,并且你的项目名称是简单的“project”,同样的,也有许多常用的方式设置文件仓库的访问权限。通常的情况下,您应该创建一个名为“Subversion”的用户组,该组是SVN仓库所在的目录的拥有者。


sudo addgroup subversion
sudo usermod -G subversion -a www-data
sudo usermod -G subversion -a yourusername
(将您自己和“www-data”(Apache 用户)加入组成员中)
或者直接使用命令编辑组文件"sudo vi /etc/group",增加组和成员(不推荐):
$ sudo vi /etc/group
结果看上去,像这样。

$cat /etc/group|grep subversion

subversion:x:1001:www-data,exp

 (2)、创建项目目录
$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir project
$ sudo chown -R www-data:subversion project
$ sudo chown -R root:subversion myproject
(3)、创建SVN文件仓库
$ sudo svnadmin create /home/svn/project

赋予组成员对所有新加入文件仓库的文件拥有相应的权限:

$ sudo chmod -R g+rws project

如果上面这个命令在创建SVN文件仓库之前运行,你可能在后续Checkin的时候遇到如下错误:

Can't open '/home/svn/myproject/db/txn-current-lock': Permission denied

查看txn-current-lock文件的权限和用户以及组信息,应该类似于:

$ls -l /home/svn/project/db/txn-current-lock

-rw-rwSr-- 1 root subversion  0  2009-06-18  15:33  txn-current-lock

除了权限以外,用户及其组如果不对,则仍然会遇到上述问题,可以再次运行命令:

$ sudo chown -R www-data:subversion myproject
3、访问方式

模式

访问方法

file:///

直接访问本地硬盘上文件仓库

http://

通过 WebDAV协议访问支持SubversionApache2 Web 服务器

https://

类似 http://,支持SSL加密

svn://

通过自带协议访问 svnserve服务器

svn+ssh://

类似 svn://,支持通过SSH通道

直接访问文件仓库(file://)

这是所有访问方式中最简单的。它不需要事先运行任何SVN服务。这种访问方式用于访问本地的SVN文件仓库。语法是:

$ svn co file:///home/svn/project
或者
$ svn co file://localhost/home/svn/project
注意:如果您并不确定主机的名称,您必须使用三个斜杠(///),而如果您指定了主机的名称,则您必须使用两个斜杠(//).
对文件仓库的访问权限基于文件系统的权限。如果该用户具有读/写权限,那么他/她就可以签出/提交修改。如果您像前面我们说描述的那样设置了相应的组,您可以简单的将一个用户添加到“subversion”组中以使其具有签出和提交的权限。

通过 WebDAV 协议访问(http://)
要通过 WebDAV 协议访问 SVN 文件仓库,您必须配置您的 Apache 2 Web 服务器。您必须加入下面的代码片段到您的
/etc/apache2/mods-available/dav_svn.conf中:
<Location /svn/project>
DAV svn
SVNPath /home/svn/project
AuthType Basic
AuthName "myproject subversion repository"
AuthUserFile /home/svn/project/conf/passwd
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
</Location>
如果需要用户每次登录时都进行用户密码验证,请将<LimitExcept
GET PROPFIND OPTIONS REPORT></LimitExcept>两行注释掉。
最后一步就是创建访问用户了,建议将用户名密码文件存放在当前版本仓库下conf文件夹下,这样版本仓库多的时候无至于太乱。
因为conf文件夹下已经存在passwd文件了,所以直接添加用户:
sudo
htpasswd -c /home/svn/project/conf/passwd user_name
htpasswd工具的安装方法如下:
sudo apt-get install apache2-utils
它会提示您输入密码,当您输入了密码,该用户就建立了。“-c”选项表示创建新的/home/svn/project/conf/passwd文件,所以user_name所指的用户将是文件中唯一的用户。如果要添加其他用户,则去掉“-c”选项即可:
sudo htpasswd /home/svn/project/conf/passwd other_user_name
打开/home/svn/project/conf/passwd这个文件,会开到形如如下形式的文本:
user_name:WEd.83H.gealA

创建以后,再次需要往别的版本仓库添加这个用户,直接把这一行复制过去就可以了。

当您添加了上面的内容,您必须重新起动
Apache 2 Web
服务器,请输入下面的命令:
sudo /etc/init.d/apache2 restart
您可以通过下面的命令来访问文件仓库:
$ svn co http://hostname/svn/project project --username user_name
它会提示您输入密码。您必须输入您使用
htpasswd
设置的密码。当通过验证,项目的文件就被签出了。

4、访问权限设置
修改/home/svn/project目录下:
svnserve.conf
passwdauthz三个文件,行最前端不允许有空格
//--
编辑svnserve.conf文件,把如下两行取消注释
password-db= password
authz-db = authz


//
补充说明
#[general]
anon-access = read
auth-access = write
password-db= passwd

其中 anon-accessauth-access分别为匿名和有权限用户的权限,默认给匿名用户只读的权限,但如果想拒绝匿

名用户的访问,只需把read改成none就能达到目的。


现在,您可以在“passwd”文件中维护用户清单。编辑同一目录下“passwd”文件,添加新用户。//--
[users]
mirze= 123456
test1 = 123456
test2 = 123456

//--
编辑同一目录下authz如下
[groups]
admin= mirze,test1
test =test2
[/]
@admin=rw
*=r

这里设置了三个用户mirze,test1,test2密码都是123456
其中mirzetest1属于admin组,有读和写的权限,test2属于test组只有读的权限

7.
启动SVN服务
svnserve-d -r /home/svn
描述说明:
-d
表示svnserver以“守护”进程模式运行
-r
指定文件系统的根位置(版本库的根目录),这样客户端不用输入全路径,就可以访问版本库
:svn://192.168.0.101/project

这时SVN安装就完成了.
局域网访问方式:
例如:svncheckout svn://192.168.0.101/project--username mirze --password123456 /var/www/project





        通过HTTP来访问SVN服务器密码是明文保存的,通过具有安全套接字(SSL)WebDAV协议访问(https://),必须为Apache2 Web服务器设置数字证书.


                        再次创建项目步骤:

1.$sudo mkdir project

  $sudo chown -R www-data:subversion project

2.创建SVN文件仓库
$sudo svnadmin create /home/svn/project

赋予组成员对所有新加入文件仓库的文件拥有相应的权限:

$sudo chmod -R g+rws project

3.要通过 WebDAV协议访问 SVN文件仓库,您必须配置您的 Apache2 Web 服务器。
您必须加入下面的代码片段到您的/etc/apache2/mods-available/dav_svn.con中:
<Location /svn/project>
DAV svn
SVNPath /home/svn/project
AuthType Basic
AuthName "myproject subversion repository"
AuthUserFile /home/svn/project/conf/passwd
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
</Location>
4.当您添加了上面的内容,您必须重新起动Apache 2 Web服务器,请输入下面的命令:

$sudo /etc/init.d/apache2 restar

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值