环境: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
This product includes software developed by CollabNet ().
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 配置文件如下
打开apache的conf/httpd.conf,安装subversion后,apache的conf/httpd.conf文件会自动 增加了模块
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
需要手动添加apache的httpd.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 /var/wwwtest/test ###checkout 版本库到web目录
完成!!!