Ubuntu16.04下搭建SVN服务器+apache2和添加版本库

本文详细介绍如何在Ubuntu 16.04环境下搭建SVN服务器,并结合Apache2实现HTTP访问方式。步骤包括安装Apache2、SVN及相关组件,创建版本库及权限配置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu16.04下搭建SVN服务器+apache2

搭建SVN服务器:采用Apache2+svn,http访问方式

1.先确定安装了Apache2, 没有安装的话,使用以下命令:

sudo apt-get install apache2

2.然后下载安装svn服务和svn-apache连接库,代码如下:

sudo apt-get install subversion

sudo apt-get install libapache2-svn

3、建立svn工作目录,用来管理svn库,代码如下:

sudo mkdir /home/svn

4、在svn目录下创建版本库,并赋予权限。(可以有多个版本库)代码如下:

sudo svnadmin create /home/svn/test

sudo chmod –R 777 /home/svn/test

-R:该目录及其子目录

(注意:如果你要建多个库,每个库都要给他权限。我直接使用 sudo chmod R 777/home/svn将/home/svn文件夹改为可读可写可执行)

sudo chown -R www-data:www-data/home/svn/test

将拥有者改为Apache2,这样可以通过http来访问

(注意:如果你要建多个库,每个库都要改变拥有者。我直接使用 sudo chown R www-data:www-data /home/svn,将/home/svn文件夹改为Apache2可访问)

5、建立了svn版本库后,可以进入test库,你会看到:

conf db format hooks locksREADME.txt

6、需要修改svnserve.conf文件,代码如下:

sudo vi svnserve.conf

编辑svnserve.conf配置文件(o键打开编辑,ESC推迟编辑),里面有注释,去掉前面的#号使语句生效。

代码如下

[general]

anon-access = read

auth-access = write

password-db = ../../passwd           前面加../../目的多版本库时使用同一的用户名密码

authz-db =../../authz                前面加../../目的多版本库时使用同一的用户名密码

[sasl]

7、将passwd和authz文件复制到/home/svn目录下,代码如下:

sudo cp passwd /home/svn

sudo cp authz /home/svn

8、修改passwd配置文件,设定用户名和密码代码如下:

sudo vi passwd

[users]

user1 = user1

user2 = user2

user3 = user3

该用户密码在Apache2中使用htpasswd需再创建一遍

注意 = 两边需要有空格,下一步也是这样

9、修改authz配置文件,代码如下:

sudo vi authz

编辑authz配置文件(o键打开编辑,ESC推迟编辑)代码如下

[aliases]

[groups]

Managers = user1

Developers = user2, user3

[svnroot:/]

@Managers = rw        

@ Developers = rw

[test:/]                    使用svn访问时需要对每个仓库赋值读写权限,http方式不用

@Managers = rw

@ Developers = rw

[test:/1-文档库/文档1]          假设对test/1-文档库/文档1文件夹配置权限

@Managers = rw

 user1 = rw

注:“[myproject:/]”svn库名称,指定组前面必须加上@,如果是单个用户则不需要@

权限有继承性,子文件夹能够继承权限

10、启动SVN服务器,代码如下:

sudo svnserve -d -r /home/svn

查看是否启动成功,可看的监听3690端口

sudo netstat -antp |grep svnserve

显示

tcp    0      0 0.0.0.0:3690    0.0.0.0:*      LISTEN    28967/svnserve

如果想关闭服务,可使用:

sudo pkill svnserve

11、用svn客户端测试SVN安装是否成功。

svn://localhost/home/test

#以上是svn的访问方式,当然还有些需要在conf里配置,将在http访问方式上介绍。

12.开机自启动svn

在/etc/init.d目录建立一个脚本文件svnd.sh

1.   cd/etc/init.d

2.   touchsvnd.sh

3.   chmod +xsvnd.sh

4.   visvnd.sh

输入如下内容:

1.   #!/bin/bash

2.   #svnservestartup

3.   svnserve-d -r /ysh/svn

更新修改权限:

update-rc.d svnd.sh defaults

(若提示权限不足,请用sudo执行)

12、上面已经安装好了svn-apache2的连接库,只需要修改apache2配置文件。代码如下:

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

编辑dav_svn.conf配置文件(o键打开编辑,ESC推迟编辑),里面有注释,去掉前面的#号使语句生效。

代码如下:

<Location /svn>

DAV svn

AVNParentPath /home/svn       根目录

AuthType Basic

AuthName "Subversion Repository"

AuthUserFile /etc/apache2/dav_svn.passwd

Require valid-user

</Location>

13、通过命令创建svn用户,代码如下:

sudo htpasswd [-c] /etc/apache2/dav_svn.passwd 用户名

# -c:首次在这个文件下建用户需要加 -c ;再加个用户就要去掉 -c 了,否则就要覆盖前面创建的用户。

#执行上面代码提示“新用户”设置密码。

14、如果出现"sudo htpasswd command not found" 错误的话,就需要安装htpasswd。

首先更新一下源,代码如下:

sudo apt-get update

然后就安装htpasswd命令,代码如下:

sudo apt-get apache2-utils

#mini-httpd 包中也有htpasswd命令

15、启动Apache服务,代码如下:

sudo /etc/init.d/apache2 restart

16、http访问SVN

http://服务器地址/svn/库名

 

svn导入命令:

svnadmin load /home/svn/test < /home/test.dump

 
 
 
 
在SVN服务器中添加新版本库的方法
1.创建版本库

sudo svnadmin create /home/svn/test1

2.设置目录权限

sudo chomd –R 777 /home/svn/test1

3.配置conf目录下的svnserve.conf文件

sudo vi svnserve.conf

编辑svnserve.conf配置文件(o键打开编辑,ESC推迟编辑),里面有注释,去掉前面的#号使语句生效。

代码如下

[general]

anon-access = read

auth-access = write

password-db = ../../passwd           前面加../../目的多版本库时使用同一的用户名密码

authz-db =../../authz                前面加../../目的多版本库时使用同一的用户名密码

[sasl]

5.重启SVN服务

sudo pkill svnserve

sudo svnserve -d -r /home/svn

 参考文章:

https://www.cnblogs.com/lovechen/p/5716213.html

http://blog.youkuaiyun.com/qq_33456723/article/details/50943502

http://blog.youkuaiyun.com/wobuxingfang/article/details/70835414


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值