整合Apache与SVN,让客户端可以用浏览器浏览源码库

之前迁移SVN,因时间问题,没进行Apache整合,只能用svn去访问而不像之前可以用http去访问,同事反应有点不习惯。

所以数据迁移完后,赶紧开始进行Apache与SVN的整合。也简单的记录一下:


1.安装Apache及SVN模块

#yum –y install httpd mod_dav_svn

#httpd –version 查看下安装的Apache版本号

#ls /etc/httpd/modules/ | grep svn 查看Apache是否已加载进svn模块
mod_authz_svn.so
mod_dav_svn.so

#vim /etc/httpd/conf/httpd.conf  如果没有加载,自行去httpd.conf添加

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

2.配置Apache:

#chown apache.apache /opt/svn/repos –R    让Apache能访问svn

[root@svn /]# cd /opt/svn
[root@svn svn]# ls
passwd  repos  restartsvnserve.sh  svn-authz.conf  svnserve.conf  svn-user.conf
key-generation.sh users
[root@svn ~]# cat key-generation.sh
#!/bin/sh
#密码批量生成
#2018-5-30
#根据svn原有的明文密码记录文件userlist.txt来进行htpasswd生成加密密码


for i in `cat userlist.txt`;
do
     echo "$i" > users;
     user=$(awk -F '=' '{print $1}' users)
     userpass=$(awk -F '=' '{print $2}' users)
     htpasswd -b passwd $user $userpass
done

[root@svn ~]#

[root@svn svn]# cat /etc/httpd/conf.d/subversion.conf  svn与Apache整合配置

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>
    DAV svn
    SVNParentPath /opt/svn/repos/     svn库目录
       AuthType Basic
       AuthName "Authorization svn"
AuthzSVNAccessFile /opt/svn/svn-authz.conf   svn权限文件
       AuthUserFile /opt/svn/passwd         svn用户密码(加密用于Apache的,有别于svn自用的明码文件svn-user.conf)
       Require valid-user
</Location>
[root@svn svn]# /etc/init.d/httpd restart   重启Apache

3.测试

通过浏览器访问测试: http://ip:85/svn/库名字  (这里设置Apache的监听端口为85)


完成整合!

ps:  passwd上的密码可以跟svn-user.conf上的密码不一样

passwd为http访问服务 svn-user.conf为svn访问服务

猜你喜欢

转载自blog.51cto.com/xaverlin/2122327
今日推荐