搭建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