一. 安装环境
- 使用Centos7环境
- 使用yum命令安装相关组件,了解yum相关问题请移步:yum源离线挂载和服务搭建
二. 安装svn组件
yum install mod_dav_svn subversion
三. 创建仓库及其用户(HTTP)
1. 创建仓库
- 在服务器home路径下创建svn文件夹
- 在svn文件夹下创建test仓库
- 授权apache用户svn文件夹操作权限
mkdir /home/svn
cd /home/svn
svnadmin create test
chown -R apache:apache /home/svn
2. 查看配置文件
- authz 是权限控制文件
- passwd 是帐号密码文件
- svnserve.conf 是SVN服务配置文件
cd /home/svn/test/conf
ls
3. 新增用户
- 编辑passwd文件,添加
- user1=123456
- user2=123456
vi passwd
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
user1=123456
user2=123456
4. 配置authz权限
- 编辑authz权限文件
- 新增
[/]
user1=rw
user2=r
*=
vi authz
[groups]
#代表仓库下文件所有权限
[/]
#读写权限
user1=rw
#读权限
user2=r
#其它用户无权限
*=
5. 配置svnserve.conf
- 编辑svnserve.conf文件
vi svnserve.conf
- 打开修改以下参数
#匿名可读
anon-access = read
#权限用户可写入
auth-access = write
#使用账号密码的文件名
password-db = passwd
#使用权限的文件名
authz-db = authz
#认证空间名
realm = /home/svn/test
6. 启动和停止
svnserve -d -r /home/svn/test
kill all svnserve
7. 访问
- 默认的端口是3690,在检出提交操作之前请检测此端口是否允许出站入站。如不允许,请设置好防火墙
- http://[ip:3690]/test
三. 创建HTTPS访问模式
1. 安装httpd组件
yum install httpd httpd-devel
yum install mod_ssl openssl
2. 设置公共config
- 在/home/svn 下创建配置文件夹 config
cd /home/svn
mkdir config
3. 新增公共subversion.conf
vi /etc/httpd/conf.d/subversion.conf
- 增加以下内容
<Location /svn>
DAV svn
SVNParentPath /home/svn/
SVNListParentPath on
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /home/svn/config/httpd-passwd
AuthzSVNAccessFile /home/svn/config/httpd-authz
Require valid-user
SSLRequireSSL
</Location>
4. 创建用户
- 创建usertest用户和密码(密码以123为示例)文件,已有文件把 -c 参数去掉
htpasswd -c /home/svn/config/http-passwd usertest
# 或者
htpasswd /home/svn/config/http-passwd usertest
- passwd 文件,增加用户
vi /home/svn/config/passwd
#增加以下内容
[users]
usertest=123
- httpd-authz 文件,增加权限
vi /home/svn/config/httpd-authz
#增加以下内容
[groups]
group1=usertest # 用户组,多个用户用逗号隔开
[test:/] # 设置test库的权限
@group1=rw # group1组里的用户有读写权限
*= # 其他用户没有任何权限
5. 配置HTTPS
cd /etc/pki/tls/private
openssl genrsa -out svn.key 1024
openssl req -new -key svn.key -out svn.csr
cd /etc/pki/tls/certs
openssl x509 -req -days 365 -in /etc/pki/tls/private/svn.csr -signkey /etc/pki/tls/private/svn.key -out svn.crt
vi /etc/httpd/conf.d/ssl.conf
#修改参数:
SSLCertificateFile /etc/pki/tls/certs/svn.crt
SSLCertificateKeyFile /etc/pki/tls/private/svn.key
#如需修改端口
Listen 61237 https
6. 授权
chown -R apache:apache /home/svn
7. 启动
svnserve -d -r /home/svn
systemctl start httpd
8. 访问
- 在检出提交操作之前请检测此端口是否允许出站入站。如不允许,请设置好防火墙
- http://[ip:61237]/svn/test