环境:nginx+php-cgi先前的跑着web服务,由于开发人员要对其修改。特此安装配置svn。以便自己 

以前在Windows 上安装了一个。今天在linux上安装,顺便记录一下。

下载svn安装包,以root进行所有操作:

wget "http://subversion.tigris.org/downloads/subversion-1.6.12.tar.gz"

wget "http://subversion.tigris.org/downloads/subversion-deps-1.6.12.tar.gz"

首先安装apache

yum install apr apr-util httpd httpd-devel  mod_dav_svn

开始解压编译subversion安装:

tar zxvf subversion-1.6.12.tar.gz

tar zxvf subversion-deps-1.6.12.tar.gz

cd subversion-1.6.12

./configure --prefix=/usr/local/svn --without-berkeley-db

注:以svnserve方式运行,不加apache编译参数。以fsfs格式存储版本库,不编译berkeley-db

make && make install

运行  /usr/local/svn/bin/svnserve --version 出现一下信息,安装成功

svnserve, version 1.6.12 (r955767)

   compiled Dec  7 2010, 10:00:41

Copyright (C) 2000-2009 CollabNet.

Subversion is open source software, see http://subversion.tigris.org/

This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository back-end (FS) modules are available:

* fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available.

配置subversion

1.     建目录和初始化版本库:

mkdir –p /data/svn/test repos     ### 新建SVN存放数据文件的版本库目录

svnadmin create /data/svn/repos ### 初始化版本库,生成相关配置文件

svnadmin create /data/svn/test

配置apache 配置文件如下

打开apacheconf/httpd.conf,安装subversion后,apacheconf/httpd.conf文件会自动 增加了模块

LoadModule dav_svn_module     modules/mod_dav_svn.so 

LoadModule authz_svn_module   modules/mod_authz_svn.so 

 

需要手动添加apachehttpd.conf如下:

单个版本库

<Location /svn>  

DAV svn 

SVNPath /data/ data/svn/www  ###svn单版本库目录

AuthType Basic  

AuthName "Subversion repository" 

AuthUserFile /etc/httpd/conf/htpasswd ###允许访问用户

AuthzSVNAccessFile /etc/httpd/conf/auth ### authz 用户访问权限:

Require valid-user 

</Location>

多个版本库

<Location /svn>

DAV svn

SVNListParentPath on

SVNParentPath /data/svn/ ###svn多版本库目录

AuthType Basic

AuthName "Subversion repository"

AuthUserFile /etc/httpd/conf/htpasswd  ###允许访问用户

AuthzSVNAccessFile /etc/httpd/conf/auth ### authz 用户访问权限:

Require valid-user

</Location>

我这里就以多库为例

2.创建账号密码文件 

htpasswd –c /etc/httpd/conf/htpasswd apache

htpasswd /etc/httpd/conf/htpasswd test

输入密码,两次确认
注意:第一次设置 用户 密码要加入 –c 这个参数 ,以后就可以不用了

创建权限文件

vi /etc/httpd/conf/auth

[groups] 

Admin = apache  ### 添加用户

test =test

[repos:/]

@Admin = rw   ###apache 的权限为读写

[test:/]

@test = rw

*= r

设置svn同步web目录,利用钩子

cd /data/svn/test/hooks    

cp post-commit.tmpl post-commit

vim post-commit      :如下

REPOS="$1"

REV="$2"

export  LANG=zh_CN.UTF-8 

web=/var/wwwtest/test

svn up $web --username=user  -password=Password

设置完毕!开始使用svn

server httpd start

svn checkout http://ip/svn/test /var/wwwtest/test      ###checkout 版本库到web目录

完成!!!

 

SVN QQ群
svn俱乐部_5                68302447
svn俱乐部_2               125194361