日历

« 2008-10-11  
   1234
567891011
12131415161718
19202122232425
262728293031 

统计信息

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

RSS订阅

为梦而活

我的最新日志

  • SVN安装配置之二

    2007-8-23

    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方式的浏览,我们可选择只安装subversionsvnserve Subversion 自带的一个小型的服务器,它使用独立的协议与客户端,并同样可以进行权限配置的操作。

    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 

    这样项目1 committer 组只能对 repos1 版本库下的文件具有写权限而不能修改版本库 repos2,同样项目2 commiter 也不能修改 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       

  • SVN安装配置

    2007-8-23

    1         引言

    1.1         编写目的

    本文档致力于介绍subversion(以下简称svn)的安装及权限配置方法。为建立svn配置管理库提供一个可执行的方案,供有需要的读者使用。

    服务器的管理员应该根据自身建设服务器的方式有选择的学习部分第三部分。客户端的使用直接参考部分内容。

    1.2         相关网站

    Subversion官方网站

    Subversion插件资源

    Subversion中文站

    iusesvn

    1.3         参考资料

    版本控制软件SubVersion 入门

    SVN服务器搭建完全手册

    ApacheSubversion 搭建安全CVS

    利用 svnserve.exe 实现精细的目录访问控制(v1.0)

    RHEL(AS4)上安装apache2.2.3 + svn1.4 + 自动邮件通知(超完整版)

    CVS迁移到SVN

    2         安装服务器

    Subversion可以运行在linux平台中也可以运行在windows平台中。相对而言,在linux环境中,运行良好,性能稳定,是配置管理库的首选方案。以下将分别介绍在不同的平台中使用不同方式架设svn服务器的步骤。可以根据实际部署环境有选择的分块阅读。

    2.1         下载软件

    http://subversion.tigris.org/downloads/subversion-1.4.3.tar.gz

    http://subversion.tigris.org/downloads/subversion-deps-1.4.3.tar.gz

    http://apache.justdn.org/httpd/httpd-2.2.3.tar.gz

    site-1.2.0.zip subclipseeclipse插件)

    tortoisesvn 下载

    svn-importer-1.1-M8.tar.gz svn转换工具)

    或者访问共享目录:\\10.130.32.16

    2.2         架构部署

    图表 21   subversion体系构架

    Subversion的设计包括一个抽象的网络层,版本库可以通过各种服务器进程访问,而且客户端“版本库访问”的API允许程序员写出相关协议的插件,Subversion可以使用无限数量的网络协议实现,目前实践中存在着以下两种服务器。

    Apache是最流行的web服务器,通过使用mod_dav_svn模块,Apache可以访问版本库,并且可以使客户端使用HTTP的扩展协议WebDAV/DeltaV进行访问,另一个是svnserve:一个小的,独立服务器,使用自己定义的协议和客户端,下面的表格比较了这两种服务器。

    表格 21   <网络服务器比较>

    特性

    Apache + mod_dav_svn

    svnserve

    认证选项

    HTTP(S) basic authX.509 certificatesLDAPNTLM或任何Apache httpd已经具备的方式

    CRAM-MD5SSH

    用户帐号选项

    私有的'users'文件

    私有的'users'文件,或存在的系统(SSH)帐户

    授权选项

    整体的读/写访问,或者是每目录的读/写访问

    整体的读/写访问,或者是使用pre-commit钩子的每目录写访问(但不是读)

    加密

    通过选择SSL

    通过选择SSH通道

    交互性

    可以部分的被其他WebDAV客户端使用

    不能被其他客户端使用

    Web浏览能力

    有限的内置支持,或者通过第三方工具,如ViewVC

    通过第三方工具,如ViewVC

    速度

    有些慢

    快一点

    初始化配置

    有些复杂

    相当简单

     

    2.3         安装apache+svn

    本例将安装在服务器10.130.33.119上。安装AS4的时候曾经安装了apache,但不是最新版本,我们将首先安装apache2

    下载httpd-2.2.3.tar.gzhttp://apache.justdn.org/httpd/httpd-2.2.3.tar.gz

    2.3.1        操作步骤

    第一步、              安装编译apache[1][2]

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

    # tar zxvf httpd-2.2.3.tar.gz   //解压缩安装包

    # cd httpd-2.2.3   //进入安装目录

    # ./configure --enable-module=so --enable-dav --enable-dav-fs --enable-dav --enable-so --prefix=/usr/local/apache2   //--enable-module=so配置Apache支持Dynamic Shared Objects (DSO)模式,--enable-dav即添加mod_dav.so模块,--enable-dav-fs即添加mod_dav_fs.so模块,--prefix=/usr/local/apache2是所需要安装到的目录位置。

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

    安装完毕,进行测试。

    # vi /usr/local/apache2/conf/httpd.conf   //修改apache配置文件  ServerName 修改为ServerName 10.130.33.119:80

    # cd /usr/local/apache2/bin   //进入apache控制脚本目录

    # ./apachectl start   //启动apache

    IE打开http://10.130.33.119, 可以看到It works!说明apache已经可以正常工作了。

     

    第二步、              安装编译subversion

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

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

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

    # ./configure --prefix=/usr/local/subverion \--with-apxs=/usr/local/apache2/bin/apxs \--with-apr=/usr/local/httpd-2.2.3/srclib/apr/  \--with-apr-util=/usr/local/httpd-2.2.3/srclib/apr-util \--with-ssl[3]      //--with-apxs指定apxs的安装的目录,可以在安装过程中自动生成两个必要的模块文件mod_dav_svn.somod_authz_svn.so以及能够支持它们可以正常地工作。其中/usr/local/httpd-2.2.3apache的源代码的目录,请根据实际情况修改。

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

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

     

    第三步、            &nb