1、创建svn用户
[root@server-002 ~]# useradd svn
[root@server-002 ~]# passwd svn
2、查看是否已经安装svn
[root@server-002 ~]# rpm -qa subversion
3、如果没有,直接第4步,如果有,先卸载
[root@server-002 ~]# rpm remove subversion -y
4、执行yum安装svn
[root@server-002 ~]# yum install subversion -y
5、创建SVN仓库
[root@server-002 ~]# svnadmin create /var/svn/svnrepos
[root@server-002 ~]# cd /var/svn/svnrepos/conf
[root@server-002 ~]# ll
total 24
-rwxrwxrwx 1 daemon daemon 75 Nov 11 2018 accessfile
-rwxrwxrwx 1 daemon daemon 1170 Nov 16 16:58 authz
-rwxrwxrwx 1 daemon daemon 385 Nov 16 16:59 passwd.default
-rwxrwxrwx 1 daemon daemon 266 Nov 16 16:57 passwdfile
-rwxrwxrwx 1 daemon daemon 3078 Nov 11 2018 svnserve.conf
6、进入仓库目录,对每个文件进行设置,参考如下:
[root@server-002 ~]# cat accessfile
[groups]
user = root
anonymous = guest
[/]
* = r
@user = rw
@anonymous = r
[root@server-002 ~]# cat accessfile
[/]
root=rw
[/myWork]
zhangsan=rw
lisi=rw
[root@server-002 ~]# cat passwd.default
[users]
root=root
zhangsan=zhangsan
lisi=lisi
7、配置svn开机启动
创建svn.service文件
[root@server-002 ~]# vim /etc/systemd/system/svn.service
[Unit]
Description=svn service
After=syslog.target
[Service]
Type=forking
ExecStart=/usr/bin/svnserve -d -r /var/svn/svnrepos --config-file=/var/svn/svnrepos/conf/svnserve.conf --log-file=/home/svn/logs/svn.log
User=svn
Group=svn
[Install]
WantedBy=multi-user.target
8、激活开机启动svn服务
[root@server-002 ~]# systemctl daemon-reload
[root@server-002 ~]# systemctl enable svn
9、添加http访问支持
- 检查是否已经安装了apache服务
[root@server-002 ~]# rpm -qa httpd
- 如果没有该服务,则安装,否则跳过
[root@server-002 ~]# yum install httpd -y
- 安装mod_dav_svn组件
[root@server-002 ~]# yum install mod_dav_svn -y
- 修改apache启动用户和组为svn
[root@server-002 ~]# vim /etc/httpd/conf/httpd.conf
User svn
Group svn
- 修改subversion.conf配置
[root@server-002 ~]# vim /etc/httpd/conf.d/subversion.conf
<Location /svnrepos>
DAV svn
# SVNListParentPath on
# SVNParentPath /var/svn/svnrepos
SVNPath /var/svn/svnrepos # 如果想在一个目录下面创建多个版本库的话,则使用
AuthzSVNAccessFile /var/svn/svnrepos/conf/authz
AuthType Basic
AuthName "subversion repos"
AuthUserFile /var/svn/svnrepos/conf/passwdfile # svn仓库中用户和密码信息存放目录
Require valid-user
</Location>
- 利用htpasswd命令添加用户(初次创建文件并写入)
[root@server-002 ~]# htpasswd -bc /var/svn/svnrepos/conf/passwdfile admin 123456
注意:在bin目录下生成一个 htpasswd.user 文件,用户名admin,密码:123456,默认采用MD5加密方式。
- 在原有密码文件中增加下一个用户
[root@server-002 ~]# htpasswd -b /var/svn/svnrepos/conf/passwdfile admin 123456
- 账户和密码文件内容大致如下:
[root@izwz9acp86oa3ixg4umjicz conf]# cat /var/svn/svnrepos/conf/passwdfile
root:$apr1$142jvZ4d$4YNNFdssh/3eckoHaQY.0
admin:$apr1$W6Mqgcci$j220CS80QgI.HJUM922
zhangsan:$apr1$EDm6E//H$.k3S6rYJFFaxUMGSKR99
- 开放80端口
[root@server-002 ~]# firewall-cmd –add-port=80/tcp –permanent
[root@server-002 ~]# firewall-cmd –reload
- 启动apache
[root@server-002 ~]# systemctl start httpd
[root@server-002 ~]# systemctl enable httpd