• centos7 安装svn, 同时支持 svn 和 http访问


    1. 安装 svn

    [root@svn conf]#yum install subversion

     [root@svn conf]# svn --version

      svn, version 1.7.14 (r1542130)
      compiled Apr 11 2018, 02:40:28

    2.创建仓库

    #创建仓库目录
    [root@svn ~]# mkdir -p /data/svn/repos/
    [root@svn ~]# cd  /data/svn/repos/
    
    #创建svn仓库(创建3个仓库)
    [root@svn repos]# svnadmin create base
    [root@svn repos]# svnadmin create HIP
    [root@svn repos]# svnadmin create remote
    
    
    查看
    [root@svn repos]# ls
    base  HIP  remote

    4. 修改仓库的配置文件

    由于使用了多个版本仓库,所以用户密码和权限控制 单独提出来。

    修改base的配置文件
    
    [general]
    anon-access=none
    auth-access=write
    #执行/data/svn/conf/目录下认证授权
    password-db=/data/svn/conf/passwd
    authz-db=/data/svn/conf/authz
    #认证命名空间 指向本地版本仓库
    realm=base
    
    #有时候 不弹出来输入的用户名 密码,需要注释 auth-db,登录后,在修改回来重启。
    修改HIP的配置文件
    
    [general]
    anon-access=none
    auth-access=write
    #执行/data/svn/conf/目录下认证授权
    password-db=/data/svn/conf/passwd
    authz-db=/data/svn/conf/authz
    #认证命名空间 指向本地版本仓库
    realm=HIP
    
    #有时候 不弹出来输入的用户名 密码,需要注释 auth-db,登录后,在修改回来重启。
    修改remote的配置文件
    
    [general]
    anon-access=none
    auth-access=write
    #执行/data/svn/conf/目录下认证授权
    password-db=/data/svn/conf/passwd
    authz-db=/data/svn/conf/authz
    #认证命名空间,指向本地
    realm=remote
    
    #有时候 不弹出来输入的用户名 密码,需要注释 auth-db,登录后,在修改回来重启。

    5. 建立 认证目录,进行权限配置。

    [root@svn ~]# mkdir /data/svn/conf/
    #拷贝其中一个版本仓库的 passwd,和 authz
    [root@svn ~]#  cp /data/svn/repos/base/conf/{passwd,authz} /data/svn/conf/

    6. 权限配置

    vim /data/svn/conf/authz
    
    [aliases]
    # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
    
    #建立了多个组,对项目路径进行授权 [groups] admin
    = feng java = su,zhao backup = li root = root [/] @root = rw [remote:/] @java = rw [HIP:/] @admin = rw [base:/] @backup = rw
    vim  /data/svn/conf/passwd
    
    [users]
    feng = 123456
    su = 123456
    li = 123456
    zhao = 123456
    root = 123456

    启动svn

    svnserve -d -r /data/svn/repos/

    查看进程,以及端口号

    [root@svn conf]# ps -ef | grep svn
    root      4374     1  0 Jul31 ?        00:00:00 svnserve -d -r /data/svn/repos/
    root      4515  2775  0 00:06 pts/1    00:00:00 grep --color=auto svn
    
    [root@svn conf]# netstat -anpt | grep svn
    tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN      4374/svnserve 

    windows客户端安装 工具,

    在目录中,点击 svn 检出  。。。。 输入 :svn://172.16.230.168/HIP

     7 配置Apache支持HTTP访问

    yum install -y httpd mod_dav_svn

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

    # cd /etc/httpd/modules
    # ls | grep svn
    mod_authz_svn.so
    mod_dav_svn.so

    8.修改配置文件/etc/httpd/conf.d/subversion.conf(没有则新建)

    [root@svn conf]# vim /etc/httpd/conf.d/subversion.conf 
    
    <Location /svn>
        DAV svn
        SVNParentPath /data/svn/repos
        AuthType Basic
        AuthName "Authorization SVN"
        AuthzSVNAccessFile /data/svn/conf/authz
        AuthUserFile /data/svn/conf/httppassword
        Require valid-user
    </Location>

     <Location /svn>  表示我们的svn 访问URL为 http://172.16.230.168/svn/xxxx

    DAV 表示使用 mode_dav_svn 模块

    SVNParentPath  表示路径

    AuthName 表示输入用户名和密码时的提示信息

    AuthType 认证类型 这里我们使用基本的认证类型

    AuthUserFile 表示认证文件的位置

    9. 设置http访问权限 /data/svn/conf/httppassword 用户名和密码相同

    # -c 第一次创建 使用-c
    htpasswd -c /data/svn/conf/httppassword feng
    
    #第二次创建 使用-m
    htpasswd -m /data/svn/conf/httppassword li
    
    htpasswd -m /data/svn/conf/httppassword su
    
    htpasswd -m /data/svn/conf/httppassword zhao

    10. 对版本仓库授予 apache:apache 权限,保证http 可以上传

    [root@svn repos]# chown apache.apache HIP -R
    [root@svn repos]# chown apache.apache base -R
    [root@svn repos]# chown apache.apache remote -R

    [root@svn repos]# chmod -R 777 HIP base remote
    http需要
    授予777权限

    11 重启 httpd

    systemctl restart httpd

    12 访问 测试

    http://172.16.230.168/svn/base/

    如果输入用户名 密码错误,需要清空浏览器缓存,重新刷新。

    注释: 如果只支持http,那么就把 版本仓库中conf/svnserve.conf 中 password-db=/data/svn/conf/httppassword

  • 相关阅读:
    supervisorctl的安装使用
    react应用多入口配置
    百度编辑器
    formData文件上传
    thymeleaf的内联th:inline(在javascript访问model中的数据)
    浅谈Object.prototype.toString.call()方法
    JS中call()和apply()以及bind()的区别
    Json对象与Json字符串的转化
    全面解析JavaScript中“&&”和“||”操作符(总结篇)
    TortoiseSVN客户端重新设置用户名和密码
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/9396747.html
Copyright © 2020-2023  润新知