SVN服务器的部署使用
本文是博主亲自折腾过然后记录下的笔记,基本已经很全了,希望对其他的朋友都有帮助。
注明,博主折腾所用的是ubuntu服务器。
部署安装svn服务器
1、安装svn
查看是否已经安装了svn:1
svn --version
如果已经安装,可以卸载(自选,重装即卸载)1
2apt-get remove --purge subversion
# (--purge 选项表示彻底删除该软件和相关文件)
更新源并安装1
2apt-get update
apt-get install subversion
2、创建svn版本库
1 | mkdir /test/svn |
3、修改配置文件
1 | cd /test/svn/repository |
修改配置文件conf/svnserve.conf
1
2
3
4
5
6
7
8
9
10
11vim /test/svn/repository/conf/svnserve.conf
# 匿名用户可读(可改成none,即不可读)
anon-access = read
# 权限用户可写
auth-access = write
# 密码文件为passwd
password-db = passwd
# 权限文件为authz
authz-db = authz
# (tip:去掉前面的# 并且顶格,不然会报错)添加访问用户密码文件conf/passwd
1
2
3
4
5
6vim /test/svn/repository/conf/passwd
[users]
fy = 123
hello = hello
# (直接用户名 = 密码,一行一个用户,明文密码)设置用户权限conf/authz
1
2
3
4
5
6
7
8
9
10
11
12
13
14vim /test/svn/repository/conf/authz
[groups]
# 切记组要定义在目录上面,否则会报错
# 用户fy属于admin权限组
admin = fy
[/]
# admin权限组的权限是读和写
@admin = rw
# 所有的组都具有读权限和写权限
* = r
# ([/]代表的根目录,注意定义用户组一定要放在最上面)
4、启动svn服务器
1 | svnserve -d -r /test/svn |
用如下命令查看svnserve是否已经运行:1
2
3ps aux | grep svnserve
>>root 28019 0.0 0.1 73492 2860 ? Ss Apr04 0:00 svnserve -d -r /software/svn/
# (表示服务器已经在后台运行了)
如果需要关闭svn服务器,可以用如下命令:1
killall svnserve
5、客户端连接
在windows上打开小乌龟客户端,输入地址访问:1
2svn://ip/repository
# (按照登录用户不同,所得权限就不同)
svn和Apache整合
1、安装Apache
1 | apt-get install apache2 |
2、修改Apache端口
(可选,此处因为博主nginx用了80端口,所以更换Apache端口为8081)1
2
3
4
5vim /etc/apache2/ports/conf
Listen 8081
vim /etc/apache2/sites-available/000-default.conf
<VirtualHost *:8081>
3、安装整合需要的组件
1 | apt-get install libapache2-svn |
4、修改Apache模块儿部分的配置文件
1 | vim /etc/apache2/mods-enabled/dav_svn.load |
5、生成新的整合后登录的密码文件
(可以直接用SVN的密码文件,但会覆盖,所以最好先备份,
原密码文件只能用于svn://前缀协议的登录,此生成的新密码文件只能用于http ://前缀协议的登录)1
2
3
4cp /test/svn/repository/conf/passwd /test/svn/repository/conf/passwd.bak
htpasswd -c /test/svn/repository/conf/passwd '用户1'
htpasswd /test/svn/repository/conf/passwd '用户2'
# (切记:首次创建需要添加-c选项,如果再次添加用户的话不需要添加-c选项了,如果添加-c选项,之前已经添加的用户就会消失,相当于从新开始了)
6、配置Apache,以http的协议方式访问svn服务
(在安装libapache2-svn的时候,生成了一个路径为/etc/apache2/mods-available/dav_svn.conf的文件,直接进行修改即可)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18vim /etc/apache2/mods-available/dav_svn.conf
<Location /svn>
# http中需要输入的前缀
DAV svn
# SVNParentPath /test/svn/repository
# 挂载linux的文件路径
SVNPath /test/svn/repository
AuthType Basic
AuthName "Subversion Repository"
# 文字提示
AuthUserFile /test/svn/repository/conf/passwd
# 密码文件
AuthzSVNAccessFile /test/svn/repository/conf/authz
# 权限配置文件
Require valid-user
# 每次登陆都输入密码
</Location>
7、重启svn,重启Apache
1 | killall svnserve |
8、svn登录
1 | http://ip:8081/svn |
一点小tip
问题补充
- 客户端没有报错原因,在服务器端可以检查配置文件是否有误
1
2
3svnauthz-validate /test/svn/repository/conf/svnserve.conf
svnauthz-validate /test/svn/repository/conf/passwd
svnauthz-validate /test/svn/repository/conf/authz
如果读者有啥好的建议,或新的tip,等等都可以留言,博主会及时更新此博客!