Ubuntu下SVN服务器安装和配置


一、SVN安装
1.安装包
$ sudo apt-get install subversion

2.添加svn管理用户及subversion组
#添加用户
$ sudo adduser  svnuser
#添加分组
$ sudo addgroup svngroup
#添加用户到分组
$ sudo adduser  svnuser svngroup       

3.创建项目目录
$ sudo mkdir /var/www/svn
$ cd /var/www/svn

4.创建SVN文件仓库
$ sudo svnadmin create /var/www/svn/svnroot

5.修改所有者
chown svnuser.svngroup -R svnroot

6.访问方式及项目导入
$ svn co file://var/www/svn/svnroot
或者
$ svn co file://localhost/var/www/svn/svnroot

#注意:
如果您并不确定主机的名称,必须使用三个斜杠(///),而如果您指定了主机的名称,则必须使用两个斜杠(//).

#下面的命令用于将项目导入到SVN 文件仓库,一定要注明导入信息
svn import -m "new commit" /root/test file://localhost/var/www/svn/svnroot

/root/test是需要导入的文件的位置
file://localhost/var/www/svn/svnroot是仓库地址

7.访问权限设置
修改 /var/www/svn/svnroot/目录下:
svnserve.conf 、passwd 、authz三个文件,行最前端不允许有空格

编辑svnserve.conf文件,把如下两行取消注释
password-db = password
authz-db = authz

//补充说明
#[general]
anon-access = read
auth-access = write
password-db = passwd
其中anon-access和auth-access分别为匿名和有权限用户的权限,默认给匿名用户只读的权限,但如果想拒绝匿名用户的访问,只需把 read改成none就能达到目的。


编辑var/www/svnuser/etc/passwd  如下:
[users]
FansUnion = 123456

编辑var/www/svnuser/etc/authz如下
[groups]
admin = FansUnion

[/]
@admin=rw
*=r
这里设置了FansUnion这个用户,密码是123456

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

这时SVN安装就完成了.
局域网访问方式:
例如:svn checkout svn://localhost/svnroot --username FansUnion --password 123456 /var/www/svnroot/


二、通过HTTP访问SVN仓库(Apache)
1.安装包 (已安装subversion)
$ sudo apt-get install libapache2-svn

2.创建版本仓库
sudo svnadmin create /var/www/svn/svnroot
目录地址必须存在,这个就是保存版本仓库的地方,不同的版本仓库创建不同的文件夹即可,比如:

本来/var/www/svn/svnroot这个目录下什么都没有,执行下面的命令之后再去看一下,多出一些文件和文件夹,我们需要操作的是conf这个文件夹,这个文件夹下有一个文件,叫做passwd,用来存放用户名和密码。

3.修改用户和组
然后把这个版本仓库目录授权给apache读写:
sudo chown -R www-data:www-data /var/www/svn/svnroot

4.编辑apache配置文件
sudo vim /etc/apache2/mods-available/dav_svn.conf

加入如下内容:
<Location /svnroot>
DAV svn
SVNPath /var/www/svn/svnroot
AuthType Basic
AuthName "Dream Team Svn Repos"
AuthUserFile /var/www/svn/svnroot/conf/passwd
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
</Location>

location说的是访问地址,比如上述地址,访问的时候就是
http://127.0.0.1/svnroot
其中有两行被注释掉了,以保证每次都需要用户名密码。

5.创建访问用户
建议将用户名密码文件存放在当前版本仓库下conf文件夹下,这样版本仓库多的时候无至于太乱。
因为conf文件夹下已经存在passwd文件了,所以直接添加用户:

sudo htpasswd -c /var/www/svn/svnroot/conf/passwd leiwen
(-c,创建passwdfile文件。如果passwdfile已经存在,那么将被清空并改写。)

然后输入两遍密码,leiwen这个用户就创建好了。
打开/var/www/svn/svnroot/conf/passwd这个文件,会开到形如如下形式的文本:
leiwen:$apr1$spmGy53l$m7RcVXWq/xsAEtRXFDlD4  //后面是加密后的密码。

#这种方法比较合适
sudo htpasswd -b /var/www/svn/svnroot/conf/passwd FansUnion 123456
(123456将被加密,已有的密码文件会被更新,而不是从新创建)


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

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

或service apache2 restart


7.htpasswd命令参考
Usage:
        htpasswd [-cmdpsD] passwordfile username
        htpasswd -b[cmdpsD] passwordfile username password

        htpasswd -n[mdps] username
        htpasswd -nb[mdps] username password
 -c  Create a new file.
 -n  Don't update file; display results on stdout.
 -m  Force MD5 encryption of the password (default).
 -d  Force CRYPT encryption of the password.
 -p  Do not encrypt the password (plaintext).
 -s  Force SHA encryption of the password.
 -b  Use the password from the command line rather than prompting for it.
 -D  Delete the specified user.
On other systems than Windows, NetWare and TPF the '-p' flag will probably not work.
The SHA algorithm does not use a salt and is less secure than the MD5 algorithm.

有问题请留言.

原文参见http://FansUnion.cn/articles/1995(小雷网-FansUnion.cn)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值