zoukankan      html  css  js  c++  java
  • Ubuntu下SVN服务器安装和配置


    一、SVN安装
    1.安装包
    $ sudo apt-get install subversion

    2.添加svn管理用户及subversion组
    #添加用户
    $ sudo adduser  svnuser
    #添加分组
    $ sudo addgroup svngroup
    #添加用户到分组
    $ sudo adduser  svnuser svngroup       

    3.创建项目目录
    $ sudo mkdir /var/www/svn
    $ cd /var/www/svn

    4.创建SVN文件仓库
    $ sudo svnadmin create /var/www/svn/svnroot

    5.修改所有者
    chown svnuser.svngroup -R svnroot

    6.访问方式及项目导入
    $ svn co file://var/www/svn/svnroot
    或者
    $ svn co file://localhost/var/www/svn/svnroot

    #注意:
    如果您并不确定主机的名称,必须使用三个斜杠(///),而如果您指定了主机的名称,则必须使用两个斜杠(//).

    #下面的命令用于将项目导入到SVN 文件仓库,一定要注明导入信息
    svn import -m "new commit" /root/test file://localhost/var/www/svn/svnroot

    /root/test是需要导入的文件的位置
    file://localhost/var/www/svn/svnroot是仓库地址

    7.访问权限设置
    修改 /var/www/svn/svnroot/目录下:
    svnserve.conf 、passwd 、authz三个文件,行最前端不允许有空格

    编辑svnserve.conf文件,把如下两行取消注释
    password-db = password
    authz-db = authz

    //补充说明
    #[general]
    anon-access = read
    auth-access = write
    password-db = passwd
    其中anon-access和auth-access分别为匿名和有权限用户的权限,默认给匿名用户只读的权限,但如果想拒绝匿名用户的访问,只需把 read改成none就能达到目的。


    编辑var/www/svnuser/etc/passwd  如下:
    [users]
    FansUnion = 123456

    编辑var/www/svnuser/etc/authz如下
    [groups]
    admin = FansUnion

    [/]
    @admin=rw
    *=r
    这里设置了FansUnion这个用户,密码是123456

    8.启动SVN服务
    svnserve -d -r /var/www/svn
    描述说明:
    -d 表示svnserver以“守护”进程模式运行
    -r 指定文件系统的根位置(版本库的根目录),这样客户端不用输入全路径,就可以访问版本库
    如: svn://localhost/svnroot

    这时SVN安装就完成了.
    局域网访问方式:
    例如:svn checkout svn://localhost/svnroot --username FansUnion --password 123456 /var/www/svnroot/


    二、通过HTTP访问SVN仓库(Apache)
    1.安装包 (已安装subversion)
    $ sudo apt-get install libapache2-svn

    2.创建版本仓库
    sudo svnadmin create /var/www/svn/svnroot
    目录地址必须存在,这个就是保存版本仓库的地方,不同的版本仓库创建不同的文件夹即可,比如:

    本来/var/www/svn/svnroot这个目录下什么都没有,执行下面的命令之后再去看一下,多出一些文件和文件夹,我们需要操作的是conf这个文件夹,这个文件夹下有一个文件,叫做passwd,用来存放用户名和密码。

    3.修改用户和组
    然后把这个版本仓库目录授权给apache读写:
    sudo chown -R www-data:www-data /var/www/svn/svnroot

    4.编辑apache配置文件
    sudo vim /etc/apache2/mods-available/dav_svn.conf

    加入如下内容:
    <Location /svnroot>
    DAV svn
    SVNPath /var/www/svn/svnroot
    AuthType Basic
    AuthName "Dream Team Svn Repos"
    AuthUserFile /var/www/svn/svnroot/conf/passwd
    #<LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
    #</LimitExcept>
    </Location>

    location说的是访问地址,比如上述地址,访问的时候就是
    http://127.0.0.1/svnroot
    其中有两行被注释掉了,以保证每次都需要用户名密码。

    5.创建访问用户
    建议将用户名密码文件存放在当前版本仓库下conf文件夹下,这样版本仓库多的时候无至于太乱。
    因为conf文件夹下已经存在passwd文件了,所以直接添加用户:

    sudo htpasswd -c /var/www/svn/svnroot/conf/passwd leiwen
    (-c,创建passwdfile文件。如果passwdfile已经存在,那么将被清空并改写。)

    然后输入两遍密码,leiwen这个用户就创建好了。
    打开/var/www/svn/svnroot/conf/passwd这个文件,会开到形如如下形式的文本:
    leiwen:$apr1$spmGy53l$m7RcVXWq/xsAEtRXFDlD4  //后面是加密后的密码。

    #这种方法比较合适
    sudo htpasswd -b /var/www/svn/svnroot/conf/passwd FansUnion 123456
    (123456将被加密,已有的密码文件会被更新,而不是从新创建)


    创建以后,再次需要往别的版本仓库添加这个用户,直接把这一行复制过去就可以了。

    6.重启apache
    sudo /etc/init.d/apache2 restart

    或service apache2 restart


    7.htpasswd命令参考
    Usage:
            htpasswd [-cmdpsD] passwordfile username
            htpasswd -b[cmdpsD] passwordfile username password

            htpasswd -n[mdps] username
            htpasswd -nb[mdps] username password
     -c  Create a new file.
     -n  Don't update file; display results on stdout.
     -m  Force MD5 encryption of the password (default).
     -d  Force CRYPT encryption of the password.
     -p  Do not encrypt the password (plaintext).
     -s  Force SHA encryption of the password.
     -b  Use the password from the command line rather than prompting for it.
     -D  Delete the specified user.
    On other systems than Windows, NetWare and TPF the '-p' flag will probably not work.
    The SHA algorithm does not use a salt and is less secure than the MD5 algorithm.

    有问题请留言.

    原文参见http://FansUnion.cn/articles/1995(小雷网-FansUnion.cn)

  • 相关阅读:
    微信小程序,答题问卷,单选,多选混合在一个借口,前端怎么循环
    react 从0到1
    react从0到0
    es6 系统总结
    点击页面的某个元素,弹出这个元素的索引(是第几个)
    js return的用法
    安装golang.org/x/*
    完美解决从github上下载东西慢的方法
    初探golang和应用其框架 gin 的 使用教程(一)安装篇
    CentOS7安装go开发环境
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463415.html
Copyright © 2011-2022 走看看