apache转发http请求至svn
#默认svn安装好请求必须svn://协议开头,为了可以支持http://协议,在浏览器中可以访问
sudo apt-get install libapache2-svn #安装后会在/etc/apache2/mods-available/下自动创建dav_svn.conf文件
sudo apt-get install apache2-utils #安装后支持htpasswd命令
sudo vim /etc/apache2/mods-available/dav_svn.conf #修改配置文件在最后加上以下内容
####################################
<Location /svn/gxx>
DAV svn
#SVNPath /home/lisi/svn/myproject
SVNPath /srv/svn/gxx
AuthType Basic
AuthName "welcome to subversion repository"
AuthUserFile /etc/subversion/passwd
#AuthzSVNAccessFile /etc/subversion/authz
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#SSLRequireSSL #(https,否则取消)
#</LimitExcept>
</Location>
####################################
#这时候还需要俩配置文件:/etc/subversion/passwd和/etc/subversion/authz
#首次创建需要加-c选项,同时可以增加一个svn用户
#执行该命令会提示为新用户user_name设置密码
sudo htpasswd -c /etc/subversion/passwd gxx
#以后添加新用户,需要去掉-c选项,否则以前的用户就被覆灭了
sudo htpasswd /etc/subversion/passwd syl
#这时候就会创建/etc/subversion/passwd,内容如下
####################################
gxx:$apr1$pUTAEg6h$qRMcdbStaK54facJPGBtH1
syl:$apr1$SQcfcHPG$L.H3wPhp.1aGVrmEq9PCg/
####################################
sudo vim /etc/subversion/authz #手动编辑创建文件
####################################
#用户组指令
[groups]
#格式为 组名 = 用户名1,用户名2
admin_group = gxx,syl
#other groups...
#格式为 svn项目的仓库名:对应目录
#[svn_repository_name:/]
[svn_repository_name:/]
#设置组的权限,r=read, w=write
@admin_group = rw
[svn_repository_name:/gxx]
@admin_group = rw
####################################
#这时候还需要加载两个模块:authz_svn和dav_svn
a2enmod authz_svn
a2enmod dav_svn
sudo /etc/init.d/apache2 restart #重启apache后,在浏览器中访问http://121.43.104.34/svn/gxx/输入用户名密码即可访问,eclipse中也可以
#注意到这里两种请求方式的区别:
#(1)访问http://121.43.104.34/svn/gxx/,不需要启动svnserve(killall svnserve),需要启动apache(sudo /etc/init.d/apache2 start)
#(2)访问svn://121.43.104.34/gxx,需要启动svnserve(svnserve -d -r /srv/svn/),不需要启动apache(sudo /etc/init.d/apache2 stop)