• ubuntu下安装svn服务器


    sudo apt-get install apache2
    sudo apt-get install subversion
    sudo apt-get install libapache2-svn
    其次,在安装完了以上软件之后,我们需要添加一个subversion的用户组并将需要使用SVN服务的用户添加到这个组中,我们将需要添加的用户组就以subversion命名,然后将自己的账号liangzhichao添加到这个组中,命令如下:
    sudo addgroup subversion
    sudo usermod -G subversion -a liangzhichao, 其中-G指定用户添加到哪个组中,-a表明我们只是将用户liangzhichao添加到subversion这个组中,用户多了一个所属的用户组,但是不会从之前所属的用户组中脱离出来
    再次,用户组和用户已经设定好了,现在我们就可以创建一个SVN项目仓库(repository)了,通常我们会在/home目录下创建,创建指令如下:
    sudo mkdir /home/svn,在/home目录下创建一个空的目录svn,作为我们所有SVN项目仓库的存储目录
    cd /home/svn
    sudo mkdir myproject,在/home/svn目录下创建一个空的目录,作为我们的一个SVN项目仓库
    sudo chown -R root:subversion myproject,将myproject这个目录下的所有文件和目录转移所有权给subversion用户组中的用户root,大家可以简单看一下chown的用法,就知道这条指令的意思了
    sudo svnadmin create /home/svn/myproject,使用SVN自带的工具svnadmin create创建SVN项目仓库,这个时候大家去/home/svn/myproject下去看就可以看到很多文件,这就说明这个项目仓库已经真正地建好了
    sudo chmod -R g+rws myproject,赋予组成员对所有新加入项目仓库myproject的文件和目录均拥有相应的权限
    最后,我们需要配置Apache,使得我们可以以http的协议方式访问SVN服务。事实上,在我们安装libapache2-svn的时候,已经生成了一个路径为/etc/apache2/mods-available/dav_svn.conf的文件,接下来我们只需要对其进行些许的修改就可以完成对Apache的配置。打开dav_svn.conf这个配置文件,我们可以看见文件内有很多前面带#的注释语句,我们可以去掉一些#以完成我们的配置,最终dav_svn.conf这个配置文件的内容应该如下所示:
    sudo vi /etc/apache2/mods-available/dav_svn.conf
    <Location /svn> #标识http://hostname/svn/myproject
       DAV svn
       SVNParentPath /home/svn #项目仓库的父目录
       AuthType Basic
       AuthName "ToFishes Project Svn"
       AuthUserFile /etc/subversion/passwd #SVN的用户文件
       AuthzSVNAcessFile /etc/subversion/authz #授权访问文件
       Require Valid-user
    </Location>
    在上面的配置文件中我们设置了SVN的用户文件和授权访问文件,但实际上这两个文件并不存在,需要自己手动创建。创建命令如下:
    sudo htpasswd -c /etc/subversion/passwd liangzhichao,因为是首次创建,所以需要添加-c选项,同时可以增加一个SVN用户,这里我们将登录Ubuntu系统的用户的用户名liangzhichao添加到SVN用户中。我们执行这条命令后会提示我们输入用户的密码以及再次输入密码。
    如果在创建SVN用户文件之后我们还想再添加SVN用户的话,我们就不需要添加-c选项了,如果添加-c选项,之前已经添加的用户就会消失,相当于从新开始了。只添加用户命令如下:
    sudo htpasswd /etc/subversion/passwd new_liangzhichao
    上面我们添加完了用户,但是还要授权这些用户的权限,如该用户是具有读权限,还是写权限,还是读写权限等等。为了使得一个用户对于SVN的多个项目具有不同的权限控制,我们仅为用户组设置具体的读写权限,如果一个用户期望获得一个项目的相关权限,我们可以将这个用户直接添加到具有相应权限的组中去,具体命令如下:
    sudo vi /etc/subversion/authz
    在打开编辑授权文件之后编辑其内容如下:
    #用户组指令
    [groups]
    subversion = liangzhichao,将用户liangzhichao添加到用户组subversion
    #其他组
    [myproject:/]
    @subversion = rw,为用户组subversion添加读写权限
    完成以上设置之后,我们只需重启SVN就可以了,重启命令如下:
    sudo /etc/init.d/apache2 restart
    重启之后我们在浏览器中键入SVN项目的访问地址就可以查看项目中的内容了,假定我们配置服务器的IP地址为212.122.123.150,那么我们在浏览器中可键入http://212.122.123.150/svn/myproject/进行访问。
    svn: Can't open file '/home/svn/db/txn-current-lock':Permission denied
    Error1:Can't open 'db/txn-current-lock':Permission denied
        消除这种错误的解决方法是给SVN目录添加读写权限,命令如下:
        sudo chmod -R o+rw /home/svn
     
     

       /etc/apache2/mods-enabled/dav.load 内容如下

    LoadModule dav_module /usr/lib/apache2/modules/mod_dav.so
    # LoadModule dav_svn_module     /usr/lib/apache2/modules/mod_dav_svn.so
    LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

  • 相关阅读:
    读书笔记之:高级Linux编程(ch14)
    读书笔记之:C++编程惯用法——高级程序员常用的方法和技巧
    读书笔记之:sed与awk
    读书笔记之:Linux——命令、编辑器与shell编程
    读书笔记之:C++必知必会
    读书笔记之:Linux程序设计(第4版)(ch17)
    读书笔记之:Linux管理员指南与Linux系统一本通
    读书笔记之:C++语言的设计与演化(2002)
    读书笔记之:Linux一站式学习
    读书笔记之:GNU/Linux编程指南
  • 原文地址:https://www.cnblogs.com/xxhong/p/3383345.html
Copyright © 2020-2023  润新知