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

ubuntu下安装svn服务器的更多相关文章

  1. ubuntu下搭建svn服务器

    [ubuntu下搭建svn服务器] 1.创建目录 mkdir ~/svn/repository/ 2.创建仓库 svnadmin create repository 3.进入 repository/c ...

  2. ubuntu下安装svn

    Ubuntu下使用SVN SVN作为日常开发中不可缺少的工具,今天终于开始在Ubuntu下使用了. 1.首先需要安装SVN.Ubuntu下的SVN安装十分简单,sudo apt-get install ...

  3. ubuntu下配置SVN服务器

    自己买的阿里云服务器.可是我老感觉没有SVN上传代码下载代码太不方便!决定配置个SVN服务器! 1.安装Subversion $ sudo apt-get install subversion $ s ...

  4. Linux(Centos6.5)下安装svn服务器,并通过http访问

    linux安装svn其实很容易,个人觉得难就难在配置上,反复配置,琢磨,查找相关资料,总算是成功了.. 安装: 安装svn,一般情况下,选择yum方式安装还是比较简单的. ? 1 2 [root@mo ...

  5. Mac下安装svn服务器

    本文转载自http://www.cnblogs.com/czq1989/p/4913692.html Mac默认已经安装了svn,我们只需要进行配置并开启就可以了 首先我们可以验证一下是否安装了svn ...

  6. ubuntu下安装ssh服务器方法

    由于xshell远程连接ubuntu是通过ssh协议的,所以,需要给ubuntu安装ssh服务器. 1)ubuntu安装ssh服务器 sudo apt-get install openssh-serv ...

  7. linux下安装svn服务器

    http://www.cnblogs.com/zhoulf/archive/2013/02/02/2889949.html 安装说明系统环境:CentOS-6.3安装方式:yum install (源 ...

  8. Ubuntu下安装nfs服务器

    安装 NFS 软件包在 ubuntu 终端输入下面命令安装 NFS 服务器:vmuser@Linux-host: ~$ sudo apt-get install nfs-kernel-server # ...

  9. Linux 下安装 SVN服务器

    前段时间换了一个新项目组.过去发现居然SVN都没有.代码都是手动对比存档.当时就蛋疼了.这他妈也太苦逼了.话不多说,要来测试服务器地址.开工了.由于服务器不能连接外网. 1.先下载安装包.本次安装不结 ...

随机推荐

  1. JAVA线程锁lock下Condition的使用

    import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.uti ...

  2. spark统计

    http://www.myexception.cn/sql/2004512.html http://blog.csdn.net/ssw_1990/article/details/52220466 ht ...

  3. 用excel做差异表达

    首先准备数据:表达矩阵 ACC.uncv2.mRNAseq_RSEM_normalized_log2.txt(以下载的TCGA的数据,log之后的) 上面数据中01为tumor,11为normal 我 ...

  4. Linux下环境变量设置

    分类 Linux下的环境变量按生存周期来划分,可以划分为两种: 1)永久的:需要修改配置文件, 变量永久生效 2)临时的:直接在终端使用export命令声明即可,但是关闭shell后失效. 设置方法 ...

  5. 个推,手机推送api的使用

    个推的作用:可以为手机端的app使用者推送消息,而不是通过手机上的app对用户发送消息.所以用户是被动的接收信息.当然不只是只有对用户弹出窗口的这种方式,也可以把信息推送给app,让app决定对用户实 ...

  6. 学的一点点ps

    从C语言的代码中解脱开始学ps,看到色彩鲜明的东西,心里只有那么爽.哈哈.只学习3天,虽然只是一些皮毛,可还是学到了一些以前不知道的东西.让我对ps多了很多兴趣,决定以后要自学更多的ps技能.要给图片 ...

  7. js函数、变量提升(hoisting)

    其实我只是想复习下变量提升的,然后看到了函数提升,然后再看到了函数声明.函数表达式. 有必要怀着敬仰之心提及园子里的TOM大叔的解密命名函数表达式,不愧是大叔,好好地脑补了下基础知识. 在ECMASc ...

  8. 网络基础知识之————A记录和CNAME记录的区别

    1.什么是域名解析? 域名解析就是国际域名或者国内域名以及中文域名等域名申请后做的到IP地址的转换过程.IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址.域名的解 ...

  9. mysql查询结果导出到文件

    方法一: 直接执行命令: mysql> select count(1) from table   into outfile '/tmp/test.xls'; Query OK, 31 rows ...

  10. Naive Bayes理论与实践

    Naive Bayes: 简单有效的常用分类算法,典型用途:垃圾邮件分类 假设:给定目标值时属性之间相互条件独立 同样,先验概率的贝叶斯估计是 优点: 1. 无监督学习的一种,实现简单,没有迭代,学习 ...