环境:ubuntu11.04
目标:搭建svn服务,结合apache2 web方式访问。
前置条件:su root
1.安装apache2、svn
apt-get install svn apache2 libapache2-svn
2.配置svn
库安装在/sdc/svn
2.1)初始化库:svnadmin create /sdc/svn
设置apache线程用户(www-data)可访问
chown -R www-data:www-data /sdc/svn
chown www-data:www-data /sdc
否则web访问时报错:permission dennied.
2.2)设置权限文件,nano /sdc/svn/conf/svnserver.conf
去掉passowrd-db=passwd前面的#注释,表明使用passwd文件作为用户密码配置
去掉authz-db=authz前面的#注释,表明使用authz文件作为权限控制配置
2.3)设置用户密码,nano /sdc/svn/conf/passwd
[users]
zzf=******
eas=******
2.4)设置权限,nano /sdc/svn/conf/authz
#svn://xxx.xxx.xxx/访问配置
[/]
zzf=rw
*=
#http://xxx.xxx.xxx/svn访问配置
[svn:/]
zzf=rw
*=
[svn:/zzf]
zzf=rw
*=
[svn:/kingdee]
zzf=rw
eas=rw
*=
说明:svn为库(cvsadmin创建的,authz可以为多个库设置,这个在集成apache2时会用到,apache2(1)---(*)svnserver),*=表示其他人无任何权限,@可以配置用户组,原始的配置有说明。这个文件会被apache使用到(用于web浏览权限)。
2.5)启动/关闭svn,svnserve -d -r /sdc/svn,killall svnserve。
3.配置apache
3.1)apache集成svn,nano /etc/apache2/mods-available/dav_svn.conf
<Location /svn> #http://xxx.xxx.xxx/svn
DAV svn
SVNPath /sdc/svn
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /sdc/svn/conf/apache_passwd #用户密码,与svn的passwd不同,后面设置。
AuthzSVNAccessFile /sdc/svn/conf/authz #共享svn权限控制
Require valid-user #认证
</Location>
3.2)web访问的用户配置
htpasswd -c /sdc/svn/conf/apache_passwd zzf
#输入密码(-c表示第一次创建文件)
htpasswd /sdc/svn/conf/apache_passwd eas
#输入密码(不用-c,否则之前的就丢失了)
ps:尽量让web与svn用户密码一致,方便。
到此配置完毕
4.使用apache2: /etc/init.d/apache2 restart
http://xxx.xxx.xxx/svn
弹出用户密码验证框。。。ok~