How to set up a Subversion (SVN) server on CentOS or Fedora

The open-source community has been using Subversion (or SVN) widely for many collaborative open-source development projects. SVN is supported by all major open-source project hosting sites such as Google Code, GitHub, SourceForge and Launchpad. You can of course set up your own Subversion server in house.

SVN supports several protocols for network access: SVN, SVN+SSH, HTTP, HTTPS. If you are behind a firewall, HTTP-based Subversion is advantageous since SVN traffic will go through the firewall without any additional firewall rule setting. In this tutorial, I will describe how to set up an HTTP-based Subversion server on CentOS or Fedora platform.

First, install Subversion, as well as Subversion module for Apache HTTP server as follows. This will also install Apache HTTP server as a dependency if it is installed.

$ sudo yum install subversion mod_dav_svn

Next, create a local SVN repository which will store code

$ sudo mkdir /svnrepos
$ sudo svnadmin create /svnrepos

Make the SVN repository readable and writable by the same user as the one which Apache HTTP server runs as. On CentOS or Fedora platforms, this user is "apache".

$ sudo chown -R apache.apache /svnrepos

Edit Apache HTTP server configuration as follows.

$ sudo vi /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svnrepos>
   DAV svn
   SVNPath /svnrepos
   AuthType Basic
   AuthName "Subversion repositories"
   AuthUserFile /etc/svn-auth-users
   Require valid-user
</Location>

Next, add Subversion users who are authorized to access the SVN server. Here I use basic authentication provided by Apache HTTP server. For that, usehtpasswd command which creates usernames and password for authenticated HTTP users.

The first time you run htpasswd command, use "-c" option, which will create an initial SVN password file. For subsequent runs ofhtpasswd command, do not use "-c" option.

$ sudo htpasswd -cm /etc/svn-auth-users user1
New password:
Re-type new password:
Adding password for user user1
$ sudo htpasswd -m /etc/svn-auth-users user2
$ sudo htpasswd -m /etc/svn-auth-users user3
. . .

Now restart Apache HTTP server.

$ sudo service httpd restart

At this point, the SVN server should be accessible via HTTP. Go to: "http://<ip-address-svn-server>/svnrepos" to browse the SVN repository via web interface. As shown below, you will be prompted to enter username and password to proceed.

Also, when you try to access the SVN server from SVN client software, you will also be required to authenticate yourself.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值