环境
CentOS 7.2
安装SVN
su模式下运行
yum install subversion
检查svn版本
svnserve --version
OR
svn --version
创建svn的数据存储路径
mkdir -p /var/svn
参数P代表parents,表示递归创建目录。
创建版本库
创建一个名为"akiosvn"的版本库
svnadmin create /var/svn/akiosvn
执行后,会在/var/svn/akiosvn 目录下生成多个文件或目录,进入conf目录,其中:
- svnserve.conf svn服务器配置
- authz 权限控制配置文件
- passwd 用户名口令文件
PS: 删除版本库
rm -rf /var/svn/akiosvn
配置svnserve.conf文件
对svnserve.conf进行如下修改
[general]
##匿名访问的权限,可选值:read、write、none,默认read,因为是内部SVN,所以设置为none
anon-access=none
##授权用户write权限
auth-access=write
##指定当前目录下的passwd文件用于保存账号信息
password-db=passwd
##指定当前目录下的passwd文件用于保存权限信息
authz-db=authz
##指定版本库的认证域,即在登录时提示的认证域名称,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=akiosvn
配置用户账号密码
修改passwd文件
[users]
akio1=akio1pwd #用户名=密码
akio2=akio2pwd
配置用户权限
对authz进行如下配置
[groups]
## 用户组 = 用户名1,用户名2(逗号分割)
admin=akio1,akio2
user=user1,user2
test=test1,test2
[akiosvn:/] #表示根目录(/var/svn/akiosvn),akiosvn: 对应前面配置的realm=akiosvn
@admin = rw #表示admin组对根目录有读写权限:r为读,w为写
@user = r #表示user组对根目录有只读权限
*= #非用户组权限,这里设置除了用户组都对版本库没有任何权限
[akiosvn:/test] #表示test目录(/var/svn/akiosvn/test)
@test = rw #表示test组对test目录有读写权限
启动和停止SVN版本库
启动
svnserve -dr /var/svn
- 参数d代表守护进程。
- 参数r代表SVN数据根目录
停止
killall svnserve
查看是否已启动/停止SVN
ps -aux | grep svn
当使用SVN服务时,必须先kill掉SVN进程,再使用下文中的systemctl start svnserve启动SVN服务
防火墙设置
检查SVN端口,默认端口:3690
netstat -ln | grep3690
添加端口
firewall-cmd --permanet --add-port=3690/tcp
firewall-cmd --reload
注意: 当使用某些云主机时,不但要打开防火墙相应端口,还要设置云主机的“安全组”,添加端口信息,才可以访问。当防火墙关闭,仍不能访问时,可考虑此情况。
SVN服务
设置SVN开机自启动
systemctl enable svnserve.service
启动/停止SVN服务
systemctl start svnserve.service
systemctl stop svnserve.service
修改SVN端口
- 启动时添加参数
svnserve -dr /var/svn --listen-port=13690
- 使用SVN服务时,修改文件:/usr/lib/systemd/system/svnserve.service
[Unit]
Description=Subversion protocol daemon
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/svnserve
##修改这里,加上监听端口 --listen-port=13690
ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid --listen-port=13690 $OPTIONS
[Install]
WantedBy=multi-user.target
客户端访问
访问路径(默认端口)
svn://123.456.789.0/akiosvn
访问路径(自定义端口)
svn://123.456.789.0:13690/akiosvn