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 下的同名文件。
四:用户权限控制:
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能够登录到服务器;
拷贝svn服务默认的权限配置文件作为Apache 调用
cp -p /var/www/svn/svnpub/conf/authz /var/www/svn/authz
vim /var/www/svn/authz
编辑配置文件,添加2用户对于仓库根目录的可读可写权限;
五:验证:
匿名登录
匿名用户可以读;
当匿名用户上传文件时,弹出登录框
htpasswd /var/www/svn/passwd usersvn2