五.支持http访问linux
通过以上配置,svn服务基本上就算配置完成了,不过此时只能经过svn://192.168.xx.xx/project的方式访问,若是但愿经过http的方式访问,则还需进行以下配置。web
上面安装工具时已经安装了Apache和Perl。apache
1,转换SVN服务器的密码服务器
因为SVN服务器的密码是明文的,HTTP服务器不与支持,因此须要转换成HTTP支持的格式。能够写了一个Perl脚本完成这个工做.ide
cd /home/svn/project/conf/svn
vi PtoWP.pl工具
use warnings; ui
use strict; 加密
#open the svn passwd file
open (FILE, "passwd") or die ("Cannot open the passwd file!!!\n");
#clear the apache passwd file
open (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!\n");
close (OUT_FILE);
#begin
foreach (<FILE>) {
if($_ =~ m/^[^#].*=/) {
$_ =~ s/=//;
`htpasswd -b webpasswd $_`; #核心语句就这个,若是之后添加或者修改用户密码,能够使用 htpasswd -nb username password ,加密后的信息会被显示在屏幕上,复制内容到webpasswd文件便可。
}
}
perl PtoWP.pl #执行脚步后会在当前路径下生成webpasswd文件,里面就是已经加过密的密码信息。
2,修改httpd.conf,添加关于SVN服务器的内容
编辑/etc/httpd/conf/httpd.conf,在最后添加以下信息:
<Location /project>
DAV svn
SVNPath /home/svn/project/
AuthType Basic
AuthName "svn for project"
AuthUserFile /home/svn/project/conf/webpasswd #这里必定要使用webpasswd
AuthzSVNAccessFile /home/svn/project/conf/authz
Satisfy all
Require valid-user
</Location>
须要加载三个模块,若是是手工编译Apache时应该加上--enable-dav
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
3,启动HTTPD服务器
service httpd restart
4,授予txn-current-lock文件777权限
缘由是svn目录是使用root用户建立,而Apache可能不是root用户启动的,因此在提交svn时Apache用户没有/home/svn/project/db/txn-current-lock文件的访问权限
chmod 777 /home/svn/project/db/txn-current-lock
5,测试
使用svn客户端工具,或者找一台安装了subversion的linux服务器进行测试
svn co http://192.168.xx.xx/project