警告
本文最后更新于 2022-07-01,文中内容可能已过时。
摘要
安装 httpd 服务
检查 httpd 是否安装成功
安装 svnserve 服务
1
| yum install subversion -y
|
检查 svnserve 是否安装成功
安装 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
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
|