Ubuntu 下 Subversion 服务器的安装配置
2014-04-04 23:10
190 查看
公司的Subversion服务器由于电脑硬件原因,经常自动关机,需要重新安装一台服务器。原来的Subversion服务器是在WindowsXP上通过VisualSVNServer架设的,现在借此机会将其迁移至Linux系统。Linux发行版我选择了Ubuntu12.04LTSServer,安装系统的过程中可选择将LAMP一起装上,这样在系统安装完成之后Apache就可以直接使用了。
本文记录如何在Ubuntu12.04LTS上设置SubversionServer,关于Subversion仓库数据迁移的内容再另行介绍。
要通过HTTP协议访问Subversion文件仓库,需要安装并配置好Web服务器。Apache2被证实可以很好的与Subversion一起工作。关于Apache2的安装超出了本文的范围(假设已经安装好Apache2),尽管如此,本文还是会涉及如何配置Apache2使用Subversion。
类似的,要通过HTTPS协议访问Subversion文件仓库,您需要在您的Apache2中安装并配置好数字证书,这也不在本文的讨论范围之中。
幸运的,Subversion已经包含在main仓库中。所以,要安装Subversion,您只需要简单的运行:
通过上面的命令已经安装了所需的软件包。接下来将阐述如何创建Subversion仓库以及如何设置项目的访问权限。
许多位置都可以放置Subversion仓库,其中两个最常用的是:/usr/local/svn以及/home/svn。我们选择把Subversion仓库放在/home/svn/repos,并且假设我们需要建立两个仓库project1和project2。
通常的情况下,首先创建一个名为“Subversion”的用户组,该组是Subversion仓库所在的目录的拥有者。
使用如下命令增加组,并且把用户加到组里:
www-data是专门为webserver运行而创建的用户,系统中已经预先创建好了。
查看上面两个命令的执行结果:
执行如下命令创建仓库目录:
下面命令用于创建Subversion仓库:
设置仓库的用户和组:
Subversion仓库可以通过多种不同的方式进行访问——通过本地硬盘,或者通过各种网络协议。无论如何,文件仓库的位置总是使用URL来表示。
下面是几种不同的URL模式及其对应的访问方法:
file:///——直接访问本地硬盘上文件仓库http://——通过WebDAV协议访问支持Subversion的Apache2Web服务器https://——类似http://,支持SSL加密
svn://——通过自带协议访问svnserve服务器
svn+ssh://——类似svn://,支持通过SSH通道
WebDAV(Web-basedDistributedAuthoringandVersioning)一种基于HTTP1.1协议的通信协议.它扩展了HTTP1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对WebServer直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
Apachemod_dav_svn配置
要通过WebDAV协议访问SVN文件仓库,首先必须配置Apache2Web服务器。加入下面的代码片段到/etc/apache2/mods-available/dav_svn.conf文件中:
重启Apache2Web服务器
密码文件dav_svn.passwd的创建
它会提示你输入密码,当您输入了密码,该用户就建立了。“-c”选项表示创建新的/etc/subversion/dav_svn.passwd文件,所以user_name所指的用户将是文件中唯一的用户。如果要添加其他用户,则去掉“-c”选项即可:
授权配置文件dav_svn.authz
首先需要加载mod_authz_svn.so
在目录/etc/apache2/mods-enabled下创建软链接到../mods-available/authz_svn.load
../mods-available/authz_svn.load文件的内容为:
这里我指定了三个组:design组和test组,design组读写权限,test组只有读的权限。另外,设置一个管理员账号admin,管理员对所有项目有读写权限。
授权文件/etc/subversion/dav_svn.authz的内容如下:
如果在Checkin的时候遇到如下错误:
这是因为文件所属的用户和组不对造成的问题,可以重新对整个项目目录设置用户和组:
如果你不想将项目目录的拥有者设置成www-data的话,比如你可能想设置为root:
必须将root加入subversion组:
还要设置组的属性:
然后查看txn-current-lock文件的权限和用户以及组信息,应该类似于:
至此,Subversion服务器的配置已经完成了,借助SVN客户端软件就可以通过http://的方式访问到上面配置的两个文件仓库了。
本文记录如何在Ubuntu12.04LTS上设置SubversionServer,关于Subversion仓库数据迁移的内容再另行介绍。
本文涉及的范围
要通过HTTP协议访问Subversion文件仓库,需要安装并配置好Web服务器。Apache2被证实可以很好的与Subversion一起工作。关于Apache2的安装超出了本文的范围(假设已经安装好Apache2),尽管如此,本文还是会涉及如何配置Apache2使用Subversion。类似的,要通过HTTPS协议访问Subversion文件仓库,您需要在您的Apache2中安装并配置好数字证书,这也不在本文的讨论范围之中。
安装Subversion
幸运的,Subversion已经包含在main仓库中。所以,要安装Subversion,您只需要简单的运行:1 | $ sudoapt-getinstallsubversion |
2 | $ sudoapt-getinstalllibapache2-svn |
服务器配置
通过上面的命令已经安装了所需的软件包。接下来将阐述如何创建Subversion仓库以及如何设置项目的访问权限。
创建Subversion仓库(Respository)
许多位置都可以放置Subversion仓库,其中两个最常用的是:/usr/local/svn以及/home/svn。我们选择把Subversion仓库放在/home/svn/repos,并且假设我们需要建立两个仓库project1和project2。通常的情况下,首先创建一个名为“Subversion”的用户组,该组是Subversion仓库所在的目录的拥有者。
使用如下命令增加组,并且把用户加到组里:
1 | $ sudoaddgroupsubversion |
2 | $ sudousermod-Gsubversion-awww-data |
查看上面两个命令的执行结果:
1 | $ cat/etc/group|grepsubversion |
2 | subversion:x: 1001 :www-data |
1 | $ sudomkdir-p/home/svn/repos/project1 |
2 | $ sudomkdir-p/home/svn/repos/project2 |
1 | $ sudosvnadmincreate/home/svn/repos/project1 |
2 | $ sudosvnadmincreate/home/svn/repos/project2 |
1 | $ sudochown-Rwww-data:subversion/home/svn/repos/project1 |
2 | $ sudochown-Rwww-data:subversion/home/svn/repos/project2 |
访问方式
Subversion仓库可以通过多种不同的方式进行访问——通过本地硬盘,或者通过各种网络协议。无论如何,文件仓库的位置总是使用URL来表示。下面是几种不同的URL模式及其对应的访问方法:
file:///——直接访问本地硬盘上文件仓库
svn://——通过自带协议访问svnserve服务器
svn+ssh://——类似svn://,支持通过SSH通道
通过WebDAV协议访问(http://)
WebDAV(Web-basedDistributedAuthoringandVersioning)一种基于HTTP1.1协议的通信协议.它扩展了HTTP1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对WebServer直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。Apachemod_dav_svn配置
要通过WebDAV协议访问SVN文件仓库,首先必须配置Apache2Web服务器。加入下面的代码片段到/etc/apache2/mods-available/dav_svn.conf文件中:
01 | <Location /svn> |
02 | DAV svn |
03 | # Alternatively,useSVNParentPath if you havemultiplerepositories |
04 | # underasingledirectory |
05 | SVNParentPath /home/svn/repos |
06 | AuthType Basic |
07 | AuthName "Subversion repository" |
08 |
09 | # 指定基本用户验证的密码文件路径 |
10 | AuthUserFile /etc/subversion/dav_svn.passwd |
11 |
12 | # 指定文件仓库访问的授权配置文件路径 |
13 | <IfModule mod_authz_svn.c> |
14 | AuthzSVNAccessFile /etc/subversion/dav_svn.authz |
15 | </IfModule> |
16 |
17 | #<LimitExcept GETPROPFINDOPTIONSREPORT> |
18 | Require valid-user |
19 | #</LimitExcept> |
20 | </Location> |
1 | $ |
密码文件dav_svn.passwd的创建
1 | $ |
1 | $ |
授权配置文件dav_svn.authz
首先需要加载mod_authz_svn.so
在目录/etc/apache2/mods-enabled下创建软链接到../mods-available/authz_svn.load
1 | $ |
2 | $ |
1 | LoadModule |
授权文件/etc/subversion/dav_svn.authz的内容如下:
01 | [groups] |
02 | design=user1,user2,user3 |
03 | test=user4,user5 |
04 |
05 | [project1:/] |
06 | admin=rw |
07 | @design =rw |
08 | @test =r |
09 |
10 | [project2:/] |
11 | admin=rw |
12 | @design =rw |
13 | @tester =r |
1 | Can’t |
1 | $ sudochown-Rwww-data:subversion/home/svn/repos/project1 |
1 | $ |
1 | $ |
1 | $ |
1 | $ |
2 | -rw-rwSr-- 1 root 0 2009 - 06 - 18 15 : 33 txn-current-lock |
相关文章推荐
- Ubuntu 下 Subversion 服务器的安装配置
- Ubuntu 14.04 FTP服务器--vsftpd的安装和配置
- Ubuntu 14.04服务器安装及软件配置
- Ubuntu 14.04 Web服务器--Apache的安装和配置
- ubuntu 12.04中安装配置svn服务器
- 腾讯云服务器ubuntu桌面安装与配置
- Ubuntu 14.04 Web服务器--Apache的安装和配置
- Ubuntu安装配置NFS服务器
- Ubuntu下Apache web服务器的安装、配置及相关操作
- Ubuntu 14.04 FTP服务器--vsftpd的安装和配置
- ubuntu下SVN服务器安装配置
- Ubuntu虚拟机服务器安装配置
- Ubuntu-12.04下安装、配置tftp服务器的简易操作方法
- Ubuntu 14.04 FTP服务器--vsftpd的安装和配置
- ubuntu 安装配置 gerrit 服务器 [ HTTP 认证 ]
- ubuntu16.04 服务器配置安装 MongoDB
- Ubuntu 安装 subversion 服务器
- Linux-Ubuntu 远程登录服务器--ssh的安装和配置
- Ubuntu 16.04远程登录服务器--ssh的安装和配置
- Ubuntu 14.04 Samba文件服务器安装与配置