CENTOS6.8安装配置svn

前端之家收集整理的这篇文章主要介绍了CENTOS6.8安装配置svn前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

环境 :centos6.8svn1.6.11

安装svn本来是很简单的事,但由于安装好windows客户端访问出现服务器没有应答的问题,困顿了一段时间,所以记录下问题。

安装svn

官网提供的安装方法

#yum install subversion mod_dav_svn

我的安装方法

#检查是否安装了SVN
# rpm -qa subversion

#卸载旧版本SVN
# yum remove subversion

#安装SVN,输入官网提供的命令:
# yum install subversion mod_dav_svn
#若安装有问题,尝试将mod_auth_MysqL安上(yum install mod_auth_MysqL

#确认已安装了svn模块
# cd /etc/httpd/modules
# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so

安装完成后查看信息,如图,到此版本控制器安装完成。

最后一句,Cyrus SASL认证可用,说明在配置svn时可选用此认证方法,后文见。

配置仓库

#服务器上创建svn版本仓库:
#mkdir /svndata 
#svnadmin create /svndata
#我在服务器上创建了一个svndata目录,作为版本库,目录自己指定。

命令执行完成后,在该目录下将会生成conf、db、hooks、locks等文件夹和format、README.txt文件。版本仓库的配置全在conf文件夹中,进入conf文件夹,有三个文件:authz | passwd | svnserve.conf。

编辑authz文件

为访问次仓库的人分配权限。文件中可以为每个人单独定义,一行定义一个;可以分配到组中,比如开发人员全部定义到一个组(coder)中
#vim authz

  1. 单独定义
    noel=rwnoel用户具有读些权限

  2. 分组定义,以[groups]代表节点开始。定义了三类人员,一类是程序员,一类是办公人员,还有一个老板。每个组的人用逗号分隔。

  3. @H_403_83@
    [groups]
    coder=noel,harry,joe
    staff=jin,sally
    other=boss

    然后为人员分配访问权限,可以组分配权限,可以单独为每个人分配权限。
    Boss可以访问整个仓库,切具有读些权限,职员jin也具有读写权限访问整个仓库。匿名用户使用&指定。

    [/]
    @other=wr jin=wr &jim=r

    程序员们只能访问仓库中的code文件夹,且其他人没有权限

    [/code]
    @coder=wr *=

    以上权限分配方法记得灵活使用,权限有r=读,w=写,无权限为空。

    编辑passwd文件

    用于存放用户登录svn使用的密码。
    格式是 用户名=密码,一个用户一行

    编辑svnserve.conf文件

    这是访问SVN的控制文件,此配置文件只对于通过svn://访问的方式有效,http:// | file://等方式访问无效。每个配置指令配置文件都有说明。
    我的设置如下,仅供参考:

    [general]
    anon-access=none 匿名无法访问
    auth-access=write 认证的用户具有写权限
    authz-db=authz 授权的访问者,就是之前配置的authz文件
    password-db=passwd 指定访问者的密码存放位置,就是之前修改的passwd文件
    [sasl]
    #use-sasl=true

    Sasl配置节点是可选节点,如果想用Cyrus SASL认证,svn的Cysus SASL就要可用,默认不使用此认证,即使配置了,svn不支持,那么此配置也会被忽略。
    到此,svn版本仓库的配置完成,接下来就要启动服务供authz文件中的用户访问。

    配置防火墙

    #vim /etc/sysconfig/iptables

    加入内容,因为svn提供的默认访问端口就是3690:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

    或者直接使用命令,将防火墙规则追加到规则表:

    iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

    保存重启防火墙:

    #service iptables restart

    启动和停止svn服务:

    svnserve -d -r /svndata  #指定仓库位置,并启动后后台运行svn服务
    Killall svnserve  #停止svn服务

    查看svn的状态:

    ps -ef|grep svn|grep -v grep
    #输出类似结果:root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /svndata
    netstat -ln |grep 3690
    #输出类似结果:tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN

    到此,可以通过svn客户端访问仓库了。

    出现的问题

    在做了以上配置后,windows svn客户端访问输出

    svn Error: Can't connect to host *.*.*.*': 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败

    解决思路:
    1、 查看服务器端的svn状态
    ps -ef|grep svn|grep -v grep 查看svn是否在运行
    2、 检查svn服务端,端口是否在监听
    netstat -ln |grep 3690
    3、 如果没有监听,或在启动的时候指定访问端口:
    svnserve -d -r /svndata –listen-port 3690
    4、 检查防火墙是否开放3690端口
    5、 客户端能否正确链接对应端口
    telnet IP 3690
    我通过telnet发现输出信息:telnet: connect to address *.*.*.*: No route to host
    后执行如下命令,删除表链中的所有规则:
    iptables -F


    参考链接
    1、http://blog.163.com/modingfa_002/blog/static/1109254662010021112412843/
    2、http://www.jb51.cc/article/p-fwpriccv-bog.html


    Cyrus SASL 是 SASL(Simple Authentication Security Layer简单认证安全层,功能主要是用于SMTP认证) 的一个实现:
    1、 wiki
    2、开源社区

原文链接:https://www.f2er.com/centos/379709.html

猜你在找的CentOS相关文章