SVN + Apache 搭建基于Web的版本控制器

作者:Garany 发布于:2016-08-16 分类:破万卷书
1.安装软件包
# yum install subversion httpd mod_dav_svn -y

2.验证安装
# httpd -version
    结果显示:
        Server version: Apache/2.2.15 (Unix)
        Server built:   Aug 24 2015 17:52:49
# svnserve --version
    结果显示:
        svnserve,版本 1.6.11 (r934486)
        编译于 Aug 17 2015,08:37:43
# ls /etc/httpd/modules|grep svn*
    结果显示:
        mod_authz_svn.so
        mod_dav_svn.so

3.创建仓库
# useradd svn
# mkdir /var/repos                                #新建svn主目录
# svnadmin create /var/repos/svn1      #新建仓库svn1
# svnadmin create /var/repos/svn2

# chown -R svn:svn /var/repos/        #修改目录权限

4.添加用户
# htpasswd -c /var/repos/passwd user1user1passwd    #创建用户user1并且生成passwd文件
# htpasswd -b /var/repos/passwd user2user2passwd    #添加用户user2并设置密码为user2passwd

5.权限管理设置
# cp /var/repos/svn1/conf/authz  /var/repo/authz    #复制认证文件
# vim /var/repos/authz

#/var/repos/权限
[/]
user1 = rw

#svn1库权限
[svn1:/]
user1 = rw

#svn1/dir库权限                          
[svn1:/dir]
user1 = rw

#svn2库权限                          
[svn2:/]
user2 = rw

6.svn关联apache
vim /etc/httpd/conf/httpd.conf
    改:
    User apache
    Group apache
    为:
    User svn
    Group svn

vim /etc/httpd/conf.d/subversion.conf
在底部加上:

    <Location /repos>                            #web访问时使用http://ip/repos/svn1
       DAV svn
       SVNParentPath /var/repos/                #指明svn目录
          AuthType Basic
          AuthName "Authorization SVN"
          AuthzSVNAccessFile /var/repos/authz    #svn认证文件
          AuthUserFile /var/repos/passwd        #svn密码文件
          Require valid-user
    </Location>

7.重启
# svnserve -d -r /var/repos/        #启动svn服务 -r指定目录 -d后台运行
# service httpd restart

8.测试
在浏览器中输入http://ip/repos/svn1

我来说说