目录

搭建SVN+Apache

目录
警告
本文最后更新于 2022-07-01,文中内容可能已过时。

摘要

安装 httpd 服务

1
yum install httpd -y

检查 httpd 是否安装成功

1
httpd -version

安装 svnserve 服务

1
yum install subversion -y

检查 svnserve 是否安装成功

1
svnserve --version

安装 mod_dav_svn

mod_dav_svn 是 apache 服务器访问 svn 的一个模块。通过 yum 安装

1
yum install mod_dav_svn

安装成功后,会有 mod_dav_svn.so 和 mod_authz_svn.so 两个文件。

1
2
3
# find / -name mod_dav_svn.so
# find / -name mod_authz_svn.so
ls /etc/httpd/modules | grep svn

创建 svn 仓库

1
2
3
mkdir /home/svn
svnadmin create /data/svn/repo
ll /data/svn/project/
1
2
3
4
5
6
drwxr-xr-x. 2 root root  51 Nov 10 14:42 conf
drwxr-sr-x. 6 root root 4096 Nov 10 14:42 db
-r--r--r--. 1 root root  2 Nov 10 14:42 format
drwxr-xr-x. 2 root root 4096 Nov 10 14:42 hooks
drwxr-xr-x. 2 root root  39 Nov 10 14:42 locks
-rw-r--r--. 1 root root 229 Nov 10 14:42 README.txt

配置权限

创建用户文件和passwd

1
2
3
4
5
6
#创建用户文件
touch /data/svn/passwd
#创建用户admin
htpasswd /data/svn/passwd admin
#创建用户guest
htpasswd /data/svn/passwd guest
1
cat /data/svn/passwd 
1
2
admin:$apr1$UCkPzZ2x$tnDk2rgZoiaURPzO2e57t0
guest:$apr1$vX1RIUq6$OKS1bqKZSptzsPDYUOJ5x.

创建权限文件authz

1
2
cp /data/svn/project/conf/authz /data/svn/authz
cat /data/svn/authz 
1
2
3
[/]
admin = rw
guest = r

配置 httpd

1
2
touch /etc/httpd/conf.d/subversion.conf
cat /etc/httpd/conf.d/subversion.conf
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location />
DAV svn
SVNListParentPath on
SVNParentPath /data/svn
AuthType Basic
Satisfy Any
AuthName "Subversion repos"
AuthUserFile /data/svn/accesspwd
AuthzSVNAccessFile /data/svn/authz
Require valid-user
</Location>
<Location /project>
DAV svn
SVNListParentPath on
SVNParentPath /data/svn/repo
AuthType Basic
Satisfy Any
AuthName "Subversion repos"
AuthUserFile /data/svn/accesspwd
AuthzSVNAccessFile /data/svn/authz
Require valid-user
</Location>

启动 httpd 服务

1
systemctl start httpd.service

客户端使用 http://ip/repo 就可以访问刚才建立的svn仓库了。

启动 svnserver

1
svnserve -d -r /data/svn

修改 svn 根路径

1
vi /etc/sysconfig/svnserve