以前迁移SVN,因时间问题,没进行Apache整合,只能用svn去访问而不像以前能够用http去访问,同事反应有点不习惯。apache
因此数据迁移完后,赶忙开始进行Apache与SVN的整合。也简单的记录一下:vim
1.安装Apache及SVN模块浏览器
#yum –y install httpd mod_dav_svnide
#httpd –version 查看下安装的Apache版本号svn
#ls /etc/httpd/modules/ | grep svn 查看Apache是否已加载进svn模块
mod_authz_svn.so
mod_dav_svn.so测试
#vim /etc/httpd/conf/httpd.conf 若是没有加载,自行去httpd.conf添加
ui
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so加密
2.配置Apache:rest
#chown apache.apache /opt/svn/repos –R 让Apache能访问svnip
[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访问服务