centos基于HTTP的SVN配置方法

首先先把基础环境搭建好,既然是httpd作为发布的服务器,那就少不了mod_dav_svn

大家可以添加常用的安装源直接进行yum方法安装。详情见:配置多个yum安装源。

1.安装基础环境

yum install subversion httpd mod_dav_svn

2.建立svn项目目录

  1. #mkdir /data/svn(创建svn库存放的根目录,可以随便选择目录)
    #svnadmin create /data/svn/project
    #svnadmin create /data/svn/其他项目
  2. 设置目录的权限:#chmod 775 /data/svn/project // #chown apache.apache /data/svn/project
  3. 因为我们不采用svn协议的方式后台直接运行subversion,所以我们不会继续使用前面svnserve方式下的那三个文件了,而是使用httpd.conf文件里面配置的.svnpasswd和.svnaccess两个文件来配置,当然这两个文件的名字和路径你都可以根据自己喜好修改。首先是配置.svpasswd文件,这个文件其实就是标准Apache的.htpasswd文件,弄过http方式验证的都知道咋回事。运行下面的命令创建三个用户
    #htpasswd -c /data/svn/.svnpasswd jim
    #输入口令
    #htpasswd /data/svn/.svnpasswd foo (注意这里不在需要-c参数,它是用来第一次创建文件用的,以后要是再加上,就是清除所有的帐号,不要后悔哦)
    #输入foo用户的口令.svnpasswd文件搞定

    接下来开始搞.svnaccess文件, 运行 vi /data/svn/.svnaccess 编辑文件,加入下面的东西

    [groups]
    g_w = jim,xx
    g_r = foo

    [project:/]
    @g_w= rw
    @g_r=rw

    [其他项目:/xx/]
    michael=rw
    foo=r
    @g_r=r

    [其他项目:/xxx/]
    @g_w=rw
    @g_r=w

2.vim打开/etc/httpd/conf.d/subversion.conf配置文件,在尾部加入

<Directory “/data/svn”>
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Listen 8000
NameVirtualHost *:8000
<VirtualHost *:8000>
ServerAdmin mail@codeeel.com
DocumentRoot /data/web
ServerName wallin.codeeel.com
<Location /svn/>
DAV svn
SVNListParentPath on
SVNParentPath /data/svn
AuthType Basic
AuthName “svn login”
AuthUserFile /data/svn/.svnpasswd
AuthzSVNAccessFile /data/svn/.svnaccess
Require valid-user
</Location>
ErrorLog “/data/logs/svn-error_log”
CustomLog “/data/logs/svn-access_log” common
</VirtualHost>

其实最前面两行 加入mod_svn.so,apache安装好后基本上默认就有了,不用管,但是你要确定一下是不是真的有了,没有的话不行,检查/usr/local/libexe/apache22/下是否有相应so或者重新编译安装apache,并且激活相应的选项。

后面那一堆 的部分是关键,大概意思就是调用.svnpasswd文件进行用户验证,调用.svnaccess文件进行权限判断,根据目录不同自己改改就行。

这样你就可以用 http://xxx:8000/svn/project 进行项目版本管理啦。

如该需要ssl证书的方式就需要生成一下。

 

发表评论

沙发空缺中,还不快抢~