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服务部署方案_职场_02
 
 
 
 
 
 
拷贝svn服务默认的权限配置文件作为Apache 调用
cp - /var/www/svn/svnpub/conf/authz  /var/www/svn/authz
 
vim   /var/www/svn/authz
 
 
  编辑配置文件,添加2用户对于仓库根目录的可读可写权限;
 
 
 
 
Centos下Svn服务部署方案_职场_03
 
 
 
五:验证:
 
 
1客户端地址栏输入:http://192.168.18.100/svn/svnpub  ,出现如下界面,表示正常;
 
 
 
Centos下Svn服务部署方案_centos_04
 
 
 
 
匿名登录
 
 
 
Centos下Svn服务部署方案_centos_05 

 
 
匿名用户可以读;
 
 
 
Centos下Svn服务部署方案_休闲_06
 
 
 
当匿名用户上传文件时,弹出登录框
 
 
 
 
Centos下Svn服务部署方案_centos_07