Subversion在Linux下的安装与使用(和Apache配套使用

/*********************************
Title:Subversion在linux下的安装与使用(和Apache配套使用)
Author:成刚<chenggang2008@foxmail.com>
Date:2008-7-8
Modify:2008-10-24
**********************************/

安装机器: 192.168.2.180
操作系统: CentOS 5.2

/program/apache/为服务器上的apache安装目录

注意:安装subversion需要autoconf 2.58或以上版本、libtool 1.4或以上版本、gcc、libapr and libapr-util支持。


1、下载软件
httpd-2.2.9.tar.gz ()
subversion-1.5.1.tar.gz ()

2、编译安装httpd(如果您已经安装过Apache,并且配置Apache时,有这两个参数"--enable-dav --enable-so",则可省略此步骤,否则需要重新编译)
先停止apache:
/program/apache/bin/apachectl stop
然后再重装编译安装apache:
tar xvfz httpd-2.2.9.tar.gz
cd httpd-2.2.9
./configure --prefix=/program/apache --enable-dav=share --enable-so --enable-rewrite=share --enable-proxy=share --enable-proxy-ajp=share --with-apr=/program/apr --with-apr-util=/program/apr-util
make
make install

注意:以上配置Apache中的前两个参数(--enable-dav --enable-so)是必须要加的,你还可以根据您的需要添加其他的参数。
/program/apache/bin/apachectl start,打开浏览器,如果有测试页出现则证明已经安装成功。

3、安装Subversion
如果之前安装过subversion,则要卸载先前安装的Subversion库文件:
rm -f /usr/local/lib/libsvn*
rm -f /usr/local/lib/libapr*
rm -f /usr/local/lib/libexpat*
rm -f /usr/local/lib/libneon*


解压subversion:
tar xvfz subversion-1.5.3.tar.gz

检测Subversion所需的软件是否具备:
cd /server/software/subversion-1.5.1
sh ./autogen.sh
./configure --prefix=/program/subversion --with-apxs=/program/apache/bin/apxs --with-apr=/program/apr --with-apr-util=/program/apr-util
make
make install
运行make tools,在/server/software/subversion-1.5.0中生成tools目录
make tools
进入tools/server-side目录,里面有svn-populate-node-origins-index文件。

mkdir -p /server/repository //创建库文件所在的目录
/program/subversion/bin/svnadmin create /server/repository/joton //创建名为joton的仓库
/program/subversion/bin/svnadmin create /server/repository/sns //创建名为sns的仓库
去/server/repository/joton看看是不是多了些文件,如果是则说明Subversion安装成功了

执行以下命令,使apache的用户nobody对刚才新建立的仓库拥有权限:
chown -R nobody /server/repository/joton/

注:这儿的 nobody 是apache的用户,也有可能是daemon

4、修改apache,让subversion和apache一起工作
修改"/program/apache/conf/httpd.conf" ,在最下面添加如下几行:

(
subversion-1.5.3已经自动添加了,如没有则添上
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
)

单个版本库
<Location /svn>
DAV svn
SVNPath /server/repository/joton
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /server/repository/auth-svn
AuthzSVNAccessFile /server/repository/auth-svn.conf
Require valid-user
</Location>

多版本库
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath /server/repository
AuthType Basic
AuthName " Subversion repository "
AuthUserFile /server/repository/auth-svn
AuthzSVNAccessFile /server/repository/auth-svn.conf
Require valid-user
</Location>

创建权限文件
touch –p /server/repository/auth-svn.conf
下面,就要写这个auth-svn.conf文件了,它是用来控制用户访问仓库的权限的,我们把说明写在后面
[svn1:/] //这表示,仓库svn1的根目录下的访问权限
dl1 = rw // svn1仓库dl1用户具有读和写权限
dl2 = rw // svn1仓库dl2用户具有读和写权限
dl3 = r // svn1仓库dl3用户具有读权限
[svn2:/] //svn2仓库根目录下的访问权限
harry = r // harry用户在svn2仓库根目录下只有读权限
sally = // sally用户在 svn2仓库根目录下无任何权限
#[/] // 这个表示在所有仓库的根目录下
#* = r // 这个表示对所有的用户都具有读权限
#[groups] // 这个表示群组设置
#svn1-developers = harry, sally // 这个表示某群组里的成员
#svn2-developers = sally
#[svn1:/]

#@svn1-developers = rw // 如果在前面加上@符号,则表示这是个群组权限设置

下面来创建访问有权限的subversion帐号:
/program/apache/bin/htpasswd -cm /server/repository/auth-svn chenggang //创建一个名为chenggang的用户。
执行这个命令成功以后就会在/program/apache/bin目录下建立一个passwd文件,之后如果再加入新的用户和更改已有用户的密码,执行
/program/apache/bin/htpasswd /server/repository/auth-svn <username>即可。
删除某个帐号:打开/server/svn/auth-svn这个文件,直接删除相关的行.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wyffyf.html