《linux下svn的安装和配置》

一、准备好相关的几个安装包

Apr : apr-1.3.8.tar.gz 和 apr-util-1.3.9.tar.gz

zlib: zlib-1.2.3.tar.gz
Apache : httpd-2.2.13.tar.gz
Subversion: subversion-1.5.6.tar.gz 和 subversion-deps-1.5.6tar.gz

二、 安装步骤

1.安装apr-1.3.8.tar.gz
        tar –zvxf apr-1.3.8.tar.gz (解压)
        cd apr-1.3.8 (进入apr…所在的目录)
        ./configure  (安装不指定路径时 默认安装到/usr/local/apr)
        make ; make install (安装)

2. 安装 apr-util-1.3.9.tar.gz
       tar –zvxf apr-util-1.3.9.tar.gz
       cd apr-util-1.3.9
       ./configure - -with-apr=/usr/local/apr
       make ; make install

3. 安装 zlib-1.2.3.tar.gz


4. 安装httpd-2.2.13.tar.gz
        cd /usr/local
        mkdir apache (不手动建的话,等哈很麻烦的)
        回到刚才的目录
        tar –zvxf httpd-2.2.13.tar.gz
        cd httpd-2.2.13
./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav
--enable-maintainer-mode --enable-rewrite
make ; make install
安装之后重新启动apache服务
/usr/local/apache/bin/apachectl –k start / restart

用浏览器查看http://192.168.1.168(Linux系统IP地址),得到it works,说明apache已经配置成功了。

5.安装subversion
        tar –zvxf subversion-1.5.6.tar.gz 
        tar –zvxf subversion-deps-1.5.6.tar.gz (这两个自动解压成一个包 subversion-1.5.6) 
        cd subversion-1.5.6
(# 如果linux系统上已经装有apr或者apr-util ,移除 apr存在的版本,subversion解压后的文件里有apr相关的文件,需要移除)
rm –rf apr
rm -rf apr-util
说明:SVN 依赖的APR版本要正确。如果Apache为2.0.x,对应的APR版本应为0.9.x;Apache为2.2.x,对应的APR版本应为1.2.x。由于subversion-deps包里的APR是0.9.x的,因此编译svn时要删除从deps里解压出来的apr, apr-util,改而使用apache 2.2里提供的(先跑去建/usr/local/svn) 
        cd /usr/local 
        mkdir svn
(不知道为什么我不手动建目录的话,它不给我自动建) 
        cd subversion-1.5.6
./configure
--prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl --with-zlib=/usr/local/lib --enable-maintainer-mode

make ;make install

确定一下svn有没有安装成功
/usr/local/svn/bin/svnserve --version

三、 配置步骤 
    1 单资源库,如果你打算只建立一个资源库,用这种方式。打开命令提示符,输入svnadmin create E:\Resources\SVN\Repositories\AAA,回车。其中E:\Resources\SVN\Repositories\AAA为你的资源库路径。


    2 多资源库,如果你要创建多个资源库,用这种方式。打开命令提示符,输入svnadmin create E:\Resources\SVN\Repositories\AAA,回车;输入三vsndmin create E:\Resources\SVN\Repositories\BBB,回车...


  3 Apache配置:
    首先应保证Apache能正常运行。将SVN根目录的bin目录下的mod_dav_svn.so和mod_authz_svn.so两个文件拷贝到Apache根目录下的modules目录下;打开Apache配置文件httpd.conf,找到
 
      #LoadModule dav_fs_module modules/mod_dav_fs.so
      #LoadModule dav_module modules/mod_dav.so
将前面的#去掉,并添加两行:
 
      LoadModule dav_svn_module modules/mod_dav_svn.so
      LoadModule authz_svn_module modules/mod_authz_svn.so
在最后添加:
 如果是单资源库:
 <Location /svn>
 DAV svn
 SVNPath E:\Resources\SVN\Repositories
 AuthType Basic
 AuthName "Subversion Reporsitory"
 AuthUserFile E:\Resources\SVN\conf\passwd
 AuthzSVNAccessFile E:\Resources\SVN\conf\authz
 Require valid-user
 </Location>
 如果是多资源库:
 <Location /svn>
 DAV svn
 SVNListParentPath on
 SVNParentPath E:\Resources\SVN\Repositories
 AuthType Basic
 AuthName "Subversion Reporsitory"
 AuthUserFile E:\Resources\SVN\conf\passwd
 AuthzSVNAccessFile E:\Resources\SVN\conf\authz
 Require valid-user
 </Location>


 其中:<Location /svn>是指SVN服务的实例路径,需要用http://XXX.XXX.XXX.XX/svn/的方式才可以访问;E:\Resources\SVN\Repositories是资源库主目录;E:\Resources\SVN\conf是存放用户文件和权限文件的目录;E:\Resources\SVN\conf\passwd就是存放用户信息的文件,它是一个没有后缀的文件,用Apache的htpasswd.exe来维护,负责将用户的密码用MD5加密成暗文;E:\Resources\SVN\conf\authz就是存放访问权限的文件,它也是一个没有后缀的文本文件可以用文本工具直接编辑;AuthType Basic是认证类型,此处采用基本类型,即采用用户名+密码的方式;AuthName "Subversion Reporsitory"是指认证时代表示,起到提示作用;Require valid-user表示SVN必须提供用户和密码才可以访问,不能匿名登录
 重启Apache,查看Apache Service Monitor状态栏是否包含“SVN/1.6.0  DAV/2”字样。在浏览器中输入http://******/svn/(其中******为你的主机域名地址或者IP地址),验证配置。

4. 添加用户:
/usr/local/apache/bin/htpasswd –c /svn/passwd user1
第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加,第二次添加用户不需要带-c参数


5. 权限分配:
vi /svn/auth.conf (进入文件auth.conf,对其进行编辑)

[groups]
Admin=usr1,user2 (这个表示admin群组里的成员 user1,user2)
Develop=u1, u2 (这个表示Develop群组里的成员 u1,u2)

[www:/] (这表示,仓库www的根目录下的访问权限)
user1 = rw (www仓库user1用户具有读和写权限)
user2 = r ( www仓库userl用户具只有读权限)
@develop=rw (这表示 群 develop的成员都具有读写权限)

[/] (这个表示在所有仓库的根目录下)
* = r (这个表示对所有的用户都具有读权限)
注意:在编辑authz.conf文件时,所有行都必须要顶头写,否则会报错

6. 配置提高svn版本库的安全性
chmod –R 700 /svn/project/www (不让其他人有该目录的权限)

注意:直接这么chmod会导致svn客户端无法访问,同时需要修改apache配置文件./conf/httpd.conf文件, 在httpd.conf文件中有这么一段内容:
User daemon
Group daemon

把上述内容改成:
User apache
Group apache
(我的系统在安装apache的时候,自动增加了apache用户和apache组,如果你系统没有这个用户和组,则请自己添加该用户和组)
修改svn仓库的所有者
chown -R apache:apache /svn/project

猜你喜欢

转载自william750214.iteye.com/blog/986711