Centos7 搭建SVN服务器

Centos7 搭建SVN服务器

安装-卸载

  • 如果有防火墙先关闭systemctl stop firewalld.service
  • 安装SVN服务器sudo yum install subversion
  • 查看版本号svnserve --version
  • 卸载sudo yum remove subversion

SVN启动模式(一个svnserve只能为一个版本库工作)

  • 前置条件:创建版本库存放的目录mkdir /home/admin/SVN

  • 命令创建一个版本库svnadmin create /home/admin/SVN/project_01

  • 项目文件解析

    • hooks目录:放置hook脚步文件的目录
    • locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录
    • format目录:表示当前文件库配置的版本号
    • conf目录:仓库的配置文件(比如仓库用户访问账户,权限等)
  • 复制project_01/conf下的passwdauthz/home/admin/SVN可以多个版本库公用配置文件

  • 编辑/home/admin/SVN/project_01/conf配置文件svnserver.conf文件

    # vi /home/admin/SVN/project_01/conf/svnserve.conf
    
    [general]
    anon-access = none
    auth-access = write
    password-db = /home/admin/SVN/passwd
    authz-db = /home/admin/SVN/authz
    realm = project_01
    
    • anon-access:没有登录认证用户的权限,取值范围(“write”、“read”、“none”),默认为可读。
    • auth-access:登录认证用户的权限,取值范围(“write”、“read”、“none”),默认为可写。
    • password-db: 指定用户账号密码的文件。如果指定需要使用绝对路径,否则文件位置为相对目录下conf目录的相对路径。默认值为:passwd。
    • authz-db:指定用户权限的权限配置文件名。 如果指定需要使用绝对路径,否则文件位置为相对目录下conf目录的相对路径,默认值为:authz。
    • realm: 指定版本库的认证域,即在登录时提示的认证域名称。 默认值:一个UUID(Universal Unique IDentifier,全局唯一标示)。
  • 配置账号密码

    # vi /home/admin/SVN/passwd.conf
    
    [users]
    # 添加一个用户名:SVN,密码:svn123456
    svn = svn123456
    
    # 添加一个用户:SVN2,密码:svn123456
    svn2 = svn123456
    
    
  • 配置权限

    # vi /home/admin/svn/conf/authz
    [groups]
    # 添加的一个用户组,组员为svn
    developer = svn
    
    [/]
    #设置对项目根目录下的权限,开发者具有读写,svn2用户只具有读
    @developer = rw
    svn2 = r
    
    
  • 启动svn服务svnserve -d -r /home/admin/SVN/project_01

  • 查看服务是否开启ps -ef |grep sv

  • 停止SVN命令killall svnserve

  • 开启阿里云的默认端口3690

  • 客户端直接访问:svn://xxxxxxx,即可访问到project_01版本库

  • 服务命令
    设置SVN开机自启动:systemctl enable svnserve.service
    停止SVN开机自启动:systemctl disable svnserve.service
    查看SVN服务当前状态:systemctl status svnserve.service

SVN启动模式(一个svnserve为多个版本库工作)

  • 新增项目二svnadmin create /home/admin/SVN/project_02

  • 修改project_02配置文件svnserver.conf文件

    # vi /home/admin/SVN/project_02/conf/svnserve.conf
    
    [general]
    anon-access = none
    auth-access = write
    password-db = /home/admin/SVN/passwd
    authz-db = /home/admin/SVN/authz
    realm = project_02
    
  • 因为上面的配置是使用同一个用户,所以不用修改

  • 修改公用的文件authz-配置用户对版本库的权限

    # vi /home/admin/svn/conf/authz
    [groups]
    # 添加的一个用户组,组员为svn
    developer = svn
    
    [project_01:/]
    #设置对项目1根目录下的权限,svn和svn2均
    @developer = rw
    svn2 = rw
    
    [project_02:/]
    #设置对项目2根目录下的权限,开发者具有读写,svn2用户只具有读的权限
    @developer = rw
    svn2 = r
    
    
  • 启动svn服务svnserve -d -r /home/admin/SVN

  • 则可以通过svn://xxxxxxx/项目名

出现的问题

​ 使用客户端,查看log发现没有log显示,解决方法:把两个项目中的svnserve.conf里的anon-access = read改成anon-access = none。同时右键-》TortoiseSvn-》setting-》Saved Data,把这里的日志缓存clear一下即可显示。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值