Svn+apache部署文档

一、    需要的软件包:

apr:apr-1.3.18  apr-util-1.3.19

apache:httpd-2.2.14

svn:subversion-1.6.17.tar.gz  subversion-deps-1.6.17.tar.gz

二、    安装和配置步骤:

1、安装httpd-2.2.14

tar –zvxf httpd-2.2.14.tar.gz
        cd httpd-2.2.14
        ./configure
        --prefix=/usr/local/apache
        --enable-so

--enable-dav

--enable-modules=most

Make

Make install

/usr/local/apache/bin/apachectl –k start

验证apache Curl 127.0.0.1

2、安装apr-1.3.18

tar –zxvf apr-1.3.18

cd apr-1.3.18

./configure –prefix=/usr/local/apr

Make

Make install

3、安装apr-util-1.3.19

tar –zxvf apr-util-1.3.19

cd apr-util-1.3.19

./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr

Make

Make install

4、安装subversion

tar –zvxf subversion-1.6.17.tar.gz
        tar –zvxf subversion-deps-1.6.17.tar.gz /*
这两个自动解压成一个包 subversion-1.6.17       

cd subversion-1.6.17
        rm –rf apr
        rm -rf apr-util

cd  subversion-1.6.17

./configure --prefix=/usr/local/svn --with-apxs2=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

Make

Make install

 

 

提示:注意包的安装顺序,apache中自己有aprapr-util包,先安装aprapr-utilapache会报错

验证svn是否安装成功:

/usr/local/svn/bin/svnserve –version

 

查看apache的相关模块是否加载如下:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

三、    配置apache支持svn

Vi /usr/local/apache/conf/httpd.conf

在文件末尾添加

<Location /svn/>
        DAV svn

Satisfy Any

SVNListParentPath on
        SVNParentPath /svndata/svn (
此处配置你的版本库根目录) --注意这里不要是svnpath
        AuthType Basic
(连接类型设置 基本验证)
        AuthName "Hello welcome to here"
(此处字符串内容修改为提示对话框标题)
        AuthUserFile /svndata/userpasswd (
此处修改为访问版本库用户的文件, apache htpasswd命令生成)

AuthzSVNAccessFile /svndata/authz (此处修改为访问版本库权限的文件)
        Require valid-user
"Require valid-user"告诉apacheauthfile中所有的用户都可以访问。)
    
保存文件退出!
       
重新启动apache
        # /usr/local/apache/bin/apachectl –k restart
       
先使用浏览器检测一下
       
打开浏览器访问http://192.168.0.111/svn/document 会提示输入用户名密码
       
等到完成下面步骤就可以进去访问了,进去后如果有东西显示就说明成功

四、    配置svn权限管理

1 . 添加用户:
        # /usr/local/apache/bin/htpasswd –c /svndata/userpasswd user1
       
第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
       
第二次添加用户不需要带 –c 参数 :
        # /usr/local/apache/bin/htpasswd /data/svn/passwd user2
        2 .
权限分配:
        #vi /svn/auth.conf
        [groups]
这个表示群组设置
        Admin=usr1,user2
表示admin群组里的成员 user1,user2
        Develop=u1, u2 /
表示Develop群组里的成员 u1,u2
        [www:/]
表示仓库www的根目录下的访问权限

[www:/aaa]  表示对www下的aaa目录的访问权限
        user1 = rw   www
仓库user1用户具有读和写权限
        user2 = r    www
仓库userl用户具只有读权限
        @develop=rw  
表示群组develop的成员都具有读写权限
        [/]
表示在所有仓库的根目录下
        * = r  
表示对所有的用户都具有读权限
       
注意:在编辑authz.conf文件时,所有行都必须要顶头写,不能有缩行出现,否则会报错:"Access denied: ''user1'' ",里面的内容可以根据自己的需要自行添加,不必与我上面写的相同

五、    重启apache服务和svn服务

/usr/local/apache/bin/apachectl  restart 

启动svn
        /usr/local/svn/bin/svnserve -d -r /svndata/svn     

-d 表示以 daemon 方式(后台运行)运行  

 -r /svn/project 指定根目录是/svndata/svn

检查服务器是否启动正常:
        #ps –aux | grep svnserve

root 22975  0.0  0.0  7132   780 ?  Ss   Mar22   0:00 /usr/local/svn/bin/svnserve -d -r /svndata/svn
       
如果显示如下,即为启动成功

创建版本库是svnadmin create /svndata/svn/project  

就可以通过 http://ip/svn/project这个URL来访问仓库了

        OK.到此 APACHE+SVN服务器的架设已经完成