VPS上搭建Subversion服务器手记

简介: Subversion(下文简称SVN)是有名的版本控制软件,尤其适合多人在不同的地方,通过Internet,进行软件源码的控制与管理。

Subversion(下文简称SVN)是有名的版本控制软件,尤其适合多人在不同的地方,通过Internet,进行软件源码的控制与管理。最近我打算和同事协同开发一些东西,所以决定充分挖掘俺们的Linode VPS的有利资源,把SVN的服务端给装到VPS上。这样,我们就能通过SVN来远程协作开发软件了。
之前我也没在Linux下装过SVN服务端,所以也没什么经验,通过在网上的资料搜索,终于找到一些比较合适的教程来参考。网上大多的教程,提到安装SVN服务端,需要配合apache服务器。不过这下可让我郁闷了,我的Linode,是用的LNMP架构,Web Server是Nginx,貌似网上也啥文章提到用Nginx来搭配SVN的。本打算再装一个Apache的,突然在一篇教程看到原来SVN服务器除了借助apache之外,还可以以一种相对独立的方式进行安装。于是俺壮胆在VPS上装了一下,果然成功了。所以打算以此文作为安装Subversion服务端的一篇手记,也顺便备忘,以后可能还会用到。

先提一下我的服务器环境: Linode的VPS,安装了Ubuntu的 32位OS,并且用LNMP一键安装包,搭建了web环境。为了不安装apache,也不打算通过http来访问SVN,只需要客户端可以Commit & update 就可以。所以,我打算通过安装SVN独立服务器的方式,来搭建SVN服务端。

下面介绍一下安装步骤:

第一步,获取Subversion的最新版本,官网地址:http://subversion.apache.org
我打算采用获取源代码并编译安装的方式,直接获取官方最新的源代码,并下载。目前最新版本为:subversion-1.6.12
需要下载的源码包,有两个
a. subversion-1.6.12.tar.gz
b.subversion-deps-1.6.12.tar.gz 这个包是一些从apache中提取出来的依赖文件,必装!

第二步,解压源码压缩包,并编译安装Subversion

1
2
3
4
tar xfvz subversion-1.6.12.tar.gz
tar xfvz subversion-deps-1.6.12.tar.gz
cd subversion-1.12.6
./configure --prefix=/usr/local/svn --without-berkeley-db

(注:以svnserve方式运行,不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db) 接下来,直接编译和安装

1
make && make install

安装好后,可以测试一下Subversion是否正确安装:

1
/usr/local/svn/bin/svnserve --version

如果显示出Subversion的相关版本信息,表示安装正常

第三步,配置Subversion

首先,确定你的源代码数据存放的地方,这里我用/usr/local/svndata来存放我的源代码数据

1
2
3
4
5
mkdir /usr/local/svndata
#然后建立一个测试项目的目录testproject,并用这个目录作为该项目的repository
mkdir /usr/local/svndata/testproject
#为testproject建立版本库
/usr/local/svn/bin/svnadmin create /usr/local/svndata/testproject

版本库建立好后,进入此目录,你会发现Subversion已经为你生成好了目录和配置文件,用来存放你的源码的数据和版本控制信息,这些你不用太多关心了,我们需要关注的是该目录下的/conf/svnserve.conf。此文件包含了testproject的版本库配置信息。用vim或者nano修改此文件,加入以下信息:

[general]

anon-access = none

auth-access = write

password-db = /usr/local/svn/conf/passwd.conf

authz-db = /usr/local/svn/conf/authz.conf

realm = testproject

此信息中,包含了一些权限设置,以及SVN的用户名、密码验证配置相关信息。这里为了方便使用,我将password-db和authz-db都统一放到了svn里面,这样,让多个版本库可以共享同样的密码和验证信息。

接下来,直接来到/usr/local/svn,建立conf目录,并建立passwd.conf和authz.conf文件。

我们先来看看passwd.conf:

[users]

username = password

username2 = password2

比较好理解, 除了个users标签,后面的每一行,对应访问SVN的用户名和密码,中间以等号隔开,保存后,直接退出。

我们再来看看authz.conf文件:

[groups]

admin = username, username2

[/]

@admin = rw

groups表示用户组,这里吧username,username2都设置到一个叫admin的组里面。

[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/usr/local/svndata,[/]就是表示对全部版本库设置权限。@admin=rw 表示admin组的所有用户,都有读写权限。关于此配置文件的具体设置项,可以到官网参考一下。

第四步,在一切配置文件就绪后,就可以启动Subversion了。这里为了VPS的安全起见,不推荐以root身份运行Subversion,所以,我们需要为Subversion添加一个Linux运行帐号。

1
2
3
4
useradd svn -d /home/svn -s /bin/sh
#然后,以svn用户的身份,运行Subversion服务端
su - svn -c "/usr/local/svn/bin/svnserve -d --listen-port 8888 -r /usr/local/svndata"
#-d 表示后台运行此进程,监听端口为8888

这样,Subversion的服务端就启动了,为了确保万无一失,可以用命令确认:netstat -anp|grep svnserve,会出现类似下面的结果 tcp 0 0 0.0.0.0:8888 0.0.0.0:* LISTEN 13711/svnserve 这样,服务端启动好后,我们可以通过客户端进行访问了,例如在俺的Win7,实现装好了SVN客户端,就可以通过这样的地址来访问testproject:

svn://{your-server-ip}:8888/testproject/

若你发现不能访问,确保你的VPS的iptables是否允许8888端口通过,具体的配置,可以参考我之前的一篇iptables规则配置的文章

从运行的效果来看,Subversion的服务端,会占用很少的内存,感觉非常良好。

此文也到此为止,打完收工~~

 

目录
相关文章
|
9月前
|
Java 数据安全/隐私保护
关于利用VPS开MC服务器的教程
教会各位如何在vps上开一个属于自己mc服务器
147 0
|
8月前
|
运维 虚拟化
VPS和云服务器有哪些区别
VPS(Virtual Private Server)和云服务器都是虚拟化技术的产物,但它们之间有以下几个不同点:
|
9月前
|
机器学习/深度学习 弹性计算 运维
阿里云轻量级应用服务器是什么?和VPS有什么区别?
阿里云轻量级应用服务器是什么?和VPS有什么区别?阿里云服务器ECS和轻量应用服务器有什么区别?云服务器ECS是明星级云服务器,轻量应用服务器可以理解为简化版的云服务器ECS,轻量适用于单机应用,云服务器ECS适用于集群类高可用高容灾应用
542 0
|
运维 虚拟化
VPS和云服务器有哪些区别?
VPS和云服务器有哪些区别?VPS(Virtual Private Server)和云服务器都是虚拟化技术的产物,但它们之间有以下几个不同点
|
固态存储 Ubuntu 前端开发
云服务器/VPS性能和带宽测试脚本,Linux跑分
这年头VPS主机太多了,好多“二手”VPS开始横行其道,让人真假莫辨,想要购买某一个VPS主机,一般是先要看看这家的VPS主机的评测数据。
5228 0
|
算法 安全 数据安全/隐私保护
适合亚马逊外贸店铺群控的远程VPS云服务器租用及操作指南
亚马逊作为跨境电商最大的平台,大量出口企业在亚马逊开店,作为出口贸易型企业,一般代理的品类较多,所以作为常见开店的形式就是开设多个相似店面,形成亚马逊群店来获取更多的客户流量,同时借助亚马逊的推荐算法将向客户展示在相似的店面当中,争取更大的转化。
适合亚马逊外贸店铺群控的远程VPS云服务器租用及操作指南
|
运维 算法 Linux
阿里云主机(VPS主机)上搭建Anki服务器及Anki服务器搭建方案分析
大家都知道Anki是一款优秀的记忆软件,拥有优秀的记忆算法,高度可定制性,跨几乎所有平台等诸多优点。但由于AnkiWeb的服务器在国外,国内同步的同步速度真的是相当的慢- -,如果只有卡片只有文字内容还能接受,如果记忆库中有许多媒体文件(图片,音频等),同步速度根本没法忍- -...如果手动同步,又太麻烦(好吧其实是我懒- -),还好我们可以通过自己搭建服务器的办法达到较快的同步速度。
1094 0
阿里云主机(VPS主机)上搭建Anki服务器及Anki服务器搭建方案分析
|
固态存储 Linux Shell
Linux 服务器/VPS 性能和带宽测试脚本汇总
Linux 服务器/VPS 性能和带宽测试脚本汇总
1680 0
|
存储 弹性计算 安全
云服务器VPS和独立服务器的区别是什么?
独立服务器就是单独的一台物理服务器,上面只跑你自己的内容,你自己独享这台服务器的软硬件;vps就是独立服务器上开出来一部分给你,操作权限和方式同独立服务器,但是配置和性能受限(一台服务器上可以开多个vps,看空间商的设置了),说白了vps就是多个用户公用一台服务器的硬件。
924 0
|
弹性计算 关系型数据库 MySQL
利用colinux制作tinycolinx,在ecs上打造server farm和vps iaas环境代替docker
本文关键字:将tinycorelinux装在硬盘上,custom tinycore linux kernel,tcl3安装使用方法,tcl安装到硬盘,自定义linux rootfs,利用colinux代替docker组建容器。单机端口反代重用技术,内网转发复用端口
288 0
利用colinux制作tinycolinx,在ecs上打造server farm和vps iaas环境代替docker

热门文章

最新文章