为梦而活

SVN安装配置之二

上一篇 / 下一篇  2007-08-23 13:22:58 / 个人分类:软件基础知识

then

   echo "Apache startup: cannot start"

   exit

fi

case "$1" in

   'start')

       su - $APACHE_OWNER -c "$APACHE_HOME/bin/apachectl start"

       ;;

   'stop')

       su - $APACHE_OWNER -c "$APACHE_HOME/bin/apachectl stop"

       ;;

   'restart')

       su - $APACHE_OWNER -c "$APACHE_HOME/bin/apachectl restart"

       ;;

esac

保存退出。

# chmod 770 apache

# chkconfig --add apache         //  chkconfig有五项功能:添加服务,删除服务,列表服务,改变启动信息以及检查特定服务的启动状态。chkconfig没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务

# ntsysv // ntsysv来配置运行级别ntsysv关了某些服务以后重启默认的是X启动,在图象化界面中选种apache自动启动。

 

测试Apache

# service apache start

# service apache stop

# service apache restart

1.1        安装svn

如果不使用apache服务进行html方式的浏览,我们可选择只安装subversionsvnserveSubversion自带的一个小型的服务器,它使用独立的协议与客户端,并同样可以进行权限配置的操作。

1.1.1       操作步骤

第一步、             安装编译:(最好创建一个配置管理的用户,所有操作都使用该用户,避免一些不必要的麻烦。)

# chmod a+x subversion-1.4.3.tar.gz  //添加可执行权限

# tar zxvf subversion-1.4.3.tar.gz  //解压缩安装包

# cd subversion-1.4.3  //进入安装目录

# ./configure --prefix=/usr/local/subversion    //--prefix=/usr/local/subversion是所需要安装到的目录位置。用户可以根据自身环境的设置修改。

# make install  //编译后进行安装

#svnadmin --version     //检验subversion是否安装成功,查看subversion的版本

第二步、             配置管理库:

# mkdir /svndata  //创建SVN根目录svndata

# svnadmin create --fs-type fsfs /svndata/test  //SVN根目录下创建一个名叫test的仓库,--fs-type为指定仓库的文件格式为fsfs

# vi /svndata/test/conf/svnserve.conf           

svnserve设置对全局提供简单的访问控制。

去掉一下两行的注释

anon-access = read                       //表示匿名用户的权限

auth-access = write                       //表示认证用户的权限设置

password-db = passwd                    //指向保存用户帐号密码的文件的位置,可以使用相对路径

# vi /svndata/test/conf/passwd            //添加用户名密码

添加用户fox

fox = fox                  //等号前面是用户名,等号后面是密码

启动subversion

# svnserve –d          //启动subversion

守护进程启动一个服务。服务器启动后,客户端即可以通过绝对路径访问。

第三步、             测试svn

IE打开svn://10.130.33.119/svndata/test,自动打开版本库浏览器,如图所示:

 

 

1.2        安装easySVN

http://www.subversion.org.cn/index.php?option=com_content&task=view&id=92&Itemid=100

安装简便,网站有flash教学,可以成功安装部署windows环境的svn服务器。权限配置的部分也将省略。

2        权限管理

SVN可以使用多重认证源来控制访问,可以使用SSL认证方式,windows域认证方式,和paawd文件方式,为了达到权限控制的目的,又不增加权限控制的复杂性,以用户使用方便为前提,下面将介绍passwd文件权限管理配置方式。对应两种在linux上不同的部署方式有以下两种配置权限的方式。

2.1        使用apache配置文件

首先确保Apache已经加载mod_authz_svn模块[1]。保证httpd.conf文件中有以下几行:

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

2.1.1       单版本库

//修改svn仓库的所有者

# chown -R apache:apache /svndata/test

//修改该目录权限只能apache拥有

# chmod –R 700 /svndata/test

 

<Location /usboss>

DAV svn

SVNPath /svndata/test

AuthType Basic

AuthName "Fox's SVN"

AuthUserFile /svndata/passwd

AuthzSVNAccessFile /svndata/accesspolicy

Require valid-user

</Location>

 

使用htpasswd –m /svndata/passwd user          //创建一些用户

修改accesspolicy(权限访问策略文件)

……

重启apache

2.1.2       多版本库

在配置文件httpd.conf中可以用多个Location标签,也可以使用SVNParentPath代替SVNPath,例如在/svndata/t下有多个版本库repos1repos2等等,用如下方式指定:

<Location /svn/>         //不能缺少红色标志

DAV svn

SVNParentPath /svndata/

</Location>

"SVNParentPath /svndatat"表示/svndata下的每个子目录都是一个版本库。可以通过http://服务器IP/svn/repos1http://服务器IP/svn/repos2来访问。

使用SVNParentPath代替SVNPath来指定多个版本库的父目录时,其中所有的版本库都将按照这个策略文件配置。如果要对具体每个版本库配置,用如下的语法:

[groups]

project1_committers = paulex richard

project2_committers = jimmy michel spark

[repos1:/]

* = r

@ project1_committer = rw

[repos2:/]

* = r

@ project2_committer = rw 

这样项目1committer组只能对repos1版本库下的文件具有写权限而不能修改版本库repos2,同样项目2commiter也不能修改repos1版本库的文件。

2.2        使用svnserve配置文件

2.2.1       单版本库

配置文件的位置:/svndata/test/conf/下有三个配置文件:

Authz

目录访问权限控制文件

passwd

管理用户帐号

svnserve.conf

代码库基础配置文件

在服务器端,编辑代码库的test/conf/svnserve.conf文件,如下:

[general][2]

password-db = passwd         //用户名密码放在passwd文件里

anon-access = none           //不允许匿名访问

auth-access = write            //只允许认证用户写操作

authz-db = authz              //项目目录访问权限的相关配置放在authz文件里

 

在服务器端,编辑代码库test/conf/passwd文件,如下:

[users]

fox = fox

liwei = liwei

liaole =liaole

linwz = linwz

lidp = lidp

wangym =wangym

fuwb = fuwb

wangys = wangys

mengwy = mengwy

在服务器端,编辑代码库test/conf/authz文件。该文件的配置段,可以分为两类,[group]是一类,里面放置着所有用户分组信息。其余以[test:/]开头的是另外一类,每一段就是对应着项目的一个目录,其目录相关权限,就在此段内设置。使用中文权限文件的时候注意格式转换。

[groups]

svnadmin = fox,huwei

manager = liwei,linwz,lidp,wangym

java = lidp,fuwb,daiyun

vc = linwz,wangys,niucheng,weiss

test = wangym,mengwy

 

[/]

@svnadmin = rw

* = r

 

[/01管理区]

@manager = rw

* = r

 

[/02开发区/java]

@manager = rw

@java = rw

* = r

 

[/02开发区/vc]

@manager = rw

@vc = rw

* = r

 

[/03测试区]

@manager = rw

@test = rw

* = r

 

[/04发布区]

@manager = rw

wangym = rw

* = r

 

[/05共享区]

* = rw

2.2.2       多版本库

限制指定库的指定目录

应该在authz文件中指定具体的库,

[groups]

admin=user1

dev=user2

[test:/]

@admin=rw

@doc=r

如果此时你还用[/],则表示所有库的根目录。

设置多个版本库使用同一个密码控制文件

在每个版本库的svnserve.conf文件中,填写该文件的绝对路径名就可以了。

2.3        FAQ

2.3.1       

相关阅读:

TAG: 软件基础知识

 

评分:0

我来说两句

日历

« 2024-04-26  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 2972
  • 日志数: 4
  • 建立时间: 2007-07-27
  • 更新时间: 2007-08-23

RSS订阅

Open Toolbar