• IF.SVNAdmin安装 | SVN权限可视化管理


    IF.SVNAdmin安装

    环境准备

    • Subversion
    • PHP
    • Apache(httpd)
    • mod_dav_svn

    SVN

    安装SVN,并创建对应的SVN仓库

    PHP

    IF.SVNAdmin是PHP项目,需要安装PHP

    Apache(httpd)

    IF.SVNAdmin与与Subversion的连接需要基于Apache
    配置文件目录: /etc/httpd/conf.d

    mod_dav_svn

    Apache与Subversion连接需要组件mod_dav_svn


    安装过程

    1. 安装所需应用
    yum install -y subversion php httpd mod_dav_svn
    
    1. 查看应用安装情况
    svnserver --version
    php -v
    httpd -version
    ls /etc/httpd/modules/ |grep svn
    

    目录明确

    # 默认目录如下
    # /var/www/html httpd服务的应用存放目录
    # /etc/httpd/conf.d httpd服务的配置文件目录,需在该目录在建subversion.conf关联svn
    # /etc/httpd/conf.d/subversion httpd服务与svn关联配置文件
    
    
    # 手动创建目录如下(如需更改,应注意后文所有参数一并进行更改)
    # /var/www/html/svnadmin 存放ifsvnadmin
    # /apps/svn/repos 存放所有svn库的目录,通常用参数SVNParentPath,代码库的父级目录
    # /apps/svn/config 存放ifsvnadmin使用的配置文件
    # /apps/svn/config/passwdfile 用户信息配置文件 [IF.SVNAdmin使用]
    # /apps/svn/config/accessfile 权限配置文件 [IF.SVNAdmin使用]
    
    

    目录及文件创建:

    mkdir -p /apps/svn/repos
    mkdir -p /apps/svn/config 
    touch /apps/svn/config/passwdfile
    touch /apps/svn/config/accessfile
    

    下载IFSVNAdmin

    wget https://jaist.dl.sourceforge.net/project/ifsvnadmin/svnadmin-1.6.2.zip /apps
    unzip /apps/svnadmin-1.6.2.zip
    mv /apps/iF.SVNAdmin-stable-1.6.2 /var/www/html/svnadmin
    rm -rf /apps/svnadmin-1.6.2.zip
    

    权限修改

    chmod -R 777 /var/www/html/svnadmin/data/
    chmod -R 777 /apps/svn/repos
    chown -R apache:apache /var/www/html/svnadmin/
    chmod 777 /apps/svn/config/passwdfile
    chmod 777 /apps/svn/config/accessfile
    

    配置

    httpd与subversion连接

    安装了Apache之后,需要修改配置文件与SVN连接起来,配置文件

    1. 修改配置文件
    vim /etc/httpd/conf.d/subversion.conf
    

    增加内容

    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    <Location /svn>
        DAV svn
        SVNParentPath /apps/svn/repos
        AuthType Basic
        AuthName "Authorization Realm"
        AuthUserFile /apps/svn/config/passwdfile
        AuthzSVNAccessFile /apps/svn/config/accessfile
        Require valid-user
    </Location>
    
    1. 重启httpd
    systemctl restart httpd
    

    第一次访问svnadmin时设置

    # Subversion 授权文件(authz)
    /apps/svn/config/accessfile
    # 用户身份验证文件 (SVNUserFile)
    /apps/svn/config/passwdfile
    # 代码仓库的父目录 (SVNParentPath)
    /apps/svn/repos
    # 'svn.exe' 或 'svn'可执行文件:
    /usr/bin/svn
    # 'svnadmin.exe' 或 'svnadmin' 可执行文件:
    /usr/bin/svnadmin
    

    URL

    • svnadmin 的Web端
    # http://[服务器IP]/[访问前缀]/库名   (其中,访问前缀定义在subversion.conf,中的`Location /svn`)
    # 例如:
    http://10.100.xx.xxx/svnadmin/
    
    • svn库的http地址
    # http://[服务器IP]/[访问前缀]/库名   (其中,访问前缀定义在subversion.conf,中的`Location /svn`)
    # 例如:
    http://10.100.xx.xxx/svn/repo1/
    http://10.100.xx.xxx/svn/repo2/
    http://10.100.xx.xxx/svn/test1/
    

    其他相关参考

    服务启停

    # 查状态
    systemctl status httpd
    # 启服务
    systemctl start httpd
    # 重启服务
    systemctl restart httpd
    # 停止服务
    systemctl stop httpd
    

    SE Linux

    # 查看SE Linux的状态
    getenforce
    # Enforcing [开启] 强制执行
    # Permissive [关闭] 放任的,纵容的,宽容的
    
    

    临时关闭SE Linux

    setenforce 0
    

    永久修改SE Linux

    文件
    /etc/selinux/config
    修改参数

    SELINUX=disabled # 关闭
    SELINUX=enforcing # [开启]强制
    SELINUX=permissive # [开启]宽容
    

    关于SVN访问协议

    通常情况下,SVN默认的访问协议是通过svn://来访问,不支持http访问.
    但是在借用Apache(httpd)之后,则是通过http://来访问,这个时候不支持svn://访问协议.
    http的访问协议可以支持网页直接打开,所以通常情况下http协议通用性更强一些

    SVN的部署和启动方式决定了我们使用具体哪种协议

    1. 当我们使用svnserve -d -r [svn repo path]启动svn服务的时候,是使用svn://协议访问
    2. 当我们使用systemctl start httpd或者systemctl restart httpd启动时,是使用http://协议访问
    3. 两种启动方式只能使用一种,一般同时只使用一种访问协议.

    关于使用SVNAdmin之后的库配置

    在使用SVNAdmin之后,原本SVN库内的conf文件基本失去作用.
    passwd和authz文件会由SVNAdmin两个passwdfile和accessfile代替.
    server.conf也失去作用.
    Apache的作用是基于SVN底层对文件目录直接接管.
    passwdfile文件内保存的密码是加密密码, 原生的passwd是明文密码
    在使用了svnadmin时,同样可以配置hook脚本.依旧是在原库配置.

    在http访问时候,配置的hook脚本有中文时可能会报编码错误.
    Error output could not be translated from the native locale to UTF-8.
    需要修改httpd的配置编码.SVN1.8之后可以设置

    vim /etc/httpd/conf/httpd.conf
    

    添加内容

    <IfModule mod_dav_fs.c>
        DAVLockDB /var/lib/dav/lockdb
        SVNUseUTF8 On
    </IfModule>
    
  • 相关阅读:
    MapReduce_wordcount
    HDFS脚本
    学习笔记——git
    CSS3选择器:nth-of-type
    CSS命名规范
    关于line-height
    css新特性 box-flex/flex 弹性盒状模型
    开始手机端
    sass
    优雅降级与渐进增强
  • 原文地址:https://www.cnblogs.com/jrri/p/14948603.html
Copyright © 2020-2023  润新知