Svn服务器的部署方案有好多,这里介绍一种比较实用的:在linux下借助apache发布Svn服务

 

 
安装环境:Centos 5.5(linux)

 

一:下载和安装

 
1:下载所需Svn软件包
 
yum  -y  install  mod_dav_svn  subversion

 
其中: mod_dav_svn (apache用到的功能模块);
 
         subversion(svn主程序包)
 

 
2:下载和安装apache

 
Apache :确保apache 能正常启动和运行;

 
vim  /etc/httpd/conf/httpd.conf 
   

service  httpd  start    
  

 chkconfig  httpd  on

 

 

二:建立Svn仓库

 

 

1:创建要发布的根目录,指定任意位置;

 
mkdir  -p  /var/www/svn/svnpub

 

 

2:建立svn仓库

 
svnadmin  create  /var/www/svn/svnpub
 

 

 

三:与apache 关联配置

 

Apache svn关联配置:cd /etc/httpd/conf.d/     
    vim /subversion.conf       修改如下 

 
注意:由于svn服务器是通过apache 发布的,所以配置文件中的权限控制文件AuthzSVNaccessFile AuthUserFile 不能位于svn 独立的配置文件中(/var/www/svn/svnpub/conf/authz passwd)否则会出现错误,实际位置可以任意指定,这里2个配置文件我指定为/var/www/svn/authz  /var/www/svn/passwd ,passwd文件下文可以通过htpasswd 命令生成,而authz文件我们可以拷贝/var/www/svn/conf 下的同名文件。
 
 

Centos下Svn服务部署方案

 

 

 

 

 

 

 

 

四:用户权限控制:

 

 

htpasswd  -cm   /var/www/svn/passwd  usersvn1
建立用户svnuser1 (-c参数创建用户密码文件,-m参数强制使用MD5加密密码)

 
 

                                     htpasswd   /var/www/svn/passwd  usersvn2
 

 
继续建立用户svnuser2由于上面已经创建了密码文件,这里不加任何参数在里面追加新的用户)

 

 
 

 

 

AuthzSVNaccessFile AuthUserFile 分别指定独立于svn服务的配置文件路径

 
Require valid-user 表示服务器要求真实用户,这里用的是匿名;

当改为Require user svnuser1 时,只有svnuser1能够登录到服务器;

 

 

Centos下Svn服务部署方案

 

 

 

 

 

 

拷贝svn服务默认的权限配置文件作为Apache 调用

cp - /var/www/svn/svnpub/conf/authz  /var/www/svn/authz

 
vim   /var/www/svn/authz
 
 
  编辑配置文件,添加2用户对于仓库根目录的可读可写权限;

 

 

 

 

Centos下Svn服务部署方案

 

 

 

五:验证:
 

 
1客户端地址栏输入:http://192.168.18.100/svn/svnpub  ,出现如下界面,表示正常;
 
 
 
Centos下Svn服务部署方案
 
 

 

 

匿名登录

 
 
 
Centos下Svn服务部署方案 


 

 

匿名用户可以读;

 
 
 
Centos下Svn服务部署方案
 
 

 
当匿名用户上传文件时,弹出登录框

 

 

 

 

Centos下Svn服务部署方案 

 

 

 

 

 

 

转载于:https://blog.51cto.com/zuiqiufeng/800469

相关文章: