centos7搭建SVN+Apache+IF.svnadmin支持https实现web管理SVN



阅读目录

1.介绍                                                          

公司最近想把Windows server平台的SVN迁移到Linux平台;这边经过测试成功,所以写个随笔记录一下

今天写的是CentOS7上搭建基于Apache,http访问的SVN Server;和IF.svnadmin实现web后台可视化管理SVN

 

iF.SVNAdmin

iF.SVNAdmin应用程序是您的Subversion授权文件的基于Web的GUI。它基于PHP 5.3,需要安装一个Web服务器(Apache)。该应用程序不需要数据库后端或任何类似的,它完全基于Subversion授权和用户认证文件。(+包含用户和组的LDAP支持)

2. 软件准备                                                   

 

安装相关软件包

centos7搭建SVN+Apache+IF.svnadmin支持https实现web管理SVN
安装过程如下:

1.安装apache

[[email protected] ~]# yum install httpd -y

2.安装svn服务器(其中,mod_dav_svn是apache服务器访问svn的一个模块)

[[email protected] ~]# yum install mod_dav_svn subversion -y

3.安装完成后可以通过如下命令查看是否安装成功
[[email protected] ~]# httpd -version

[[email protected] ~]# svnserve --version
[[email protected] ~]# ls /etc/httpd/modules/ | grep svn

mod_authz_svn.so 
mod_dav_svn.so
3.在apache下配置svn 

[[email protected] ~]# vim /etc/httpd/conf.d/subversion.conf
1
2
3
4
5
6
7
8
9
10
11
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /var/www/svn   #svn的根目录SSLRequireSSL                #SSL访问权限
AuthType Basic               #Basic认证方式
AuthName "Authorization SVN"   #认证时显示的信息
AuthUserFile /var/www/svn/passwd      #用户文件&密码
AuthzSVNAccessFile /var/www/svn/authz  #访问权限控制文件
Require valid-user            #要求真实用户,不能匿名
</Location>
centos7搭建SVN+Apache+IF.svnadmin支持https实现web管理SVN

 

3. 建立SVN Server仓库                                 

 

通过如下命令建立svn仓库

其中/var/www/svn是准备放仓库的目录,这个目录可以放置多个代码仓库

centos7搭建SVN+Apache+IF.svnadmin支持https实现web管理SVN
[[email protected] ~]# mkdir /var/www/svn

[[email protected] ~]# svnadmin create /var/www/svn/sungeek
[[email protected] ~]# ls /var/www/svn/sungeek
             --->  conf  db  format  hooks  locks  README.txt
[[email protected] ~]# chown -R apache.apache /var/www/svn

创建用户文件passwd和权限控制文件authz
[[email protected] ~]# touch /var/www/svn/passwd 

[[email protected] ~]# touch /var/www/svn/authz
centos7搭建SVN+Apache+IF.svnadmin支持https实现web管理SVN

 

 

4. 配置安装PHP&IF.SVNadmin                     

由于iF.SVNAdmin使用php写的,因此我们需要安装php

centos7搭建SVN+Apache+IF.svnadmin支持https实现web管理SVN
[[email protected] ~]# yum install php -y

安装配置if.svnadmin

[[email protected] ~]# wget http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download
[[email protected] ~]# cd /usr/src/
[[email protected] src]# unzip iF.SVNAdmin-stable-1.6.2
[[email protected] iF.SVNAdmin-stable-1.6.2]# cp -r iF.SVNAdmin-stable-1.6.2/ /var/www/html/svnadmin
[[email protected] ~]# cd /var/www/html
[[email protected] html]# chown -R apache.apache svnadmin
[[email protected] html]# cd /var/www/html/svnadmin
[[email protected] html]# chmod -R 777 data
centos7搭建SVN+Apache+IF.svnadmin支持https实现web管理SVN

 

5.启动服务                                                 

如果开启了防火墙, 需要开启httpd访问权限

[[email protected] ~]# firewall-cmd --permanent --add-service=http
[[email protected] ~]# firewall-cmd --permanent --add-service=https
[[email protected] ~]# firewall-cmd --reload 
 

通过查看文件/usr/lib/systemd/system/svnserve.service, 了解到svnserver的配置文件是/etc/sysconfig/svnserve
修改/etc/sysconfig/svnserve

[[email protected] ~]# vim /etc/sysconfig/svnserve
OPTIONS="-r /var/svn"     
======> OPTIONS="-r /var/www/svn" 

通过如下命令来启用服务

[[email protected] ~]# systemctl start httpd.service

如下命令使其开机自启动

[[email protected] ~]# systemctl enable httpd.service

重启Apache

[[email protected] ~]# systemctl restart httpd.service

启动webserver服务后,浏览器地址输入http://ip/svnadmin出现配置界面,输入下图中配置信息,输入每个配置信息可以点击旁边的Test测试是否输入正确,最后保存配置

centos7搭建SVN+Apache+IF.svnadmin支持https实现web管理SVN

centos7搭建SVN+Apache+IF.svnadmin支持https实现web管理SVN

保存后,会提示默认的账户为admin/admin。

登陆后我们可以在“Repositories”下“add”,添加项目目录;

在"Users"下添加用户;



(1)svn客户端访问路径为:

备注:以往svn客户端访问路径为:svn://182.61.33.241/svn/repos/改为:

http://182.61.33.241/svn/repos/

(2)访问前,需要在if.admin后台先创建好访问路径,售后给用户授权该路径才能用访问

新手注意:仓库路径和访问路径是两个概念,仓库建好了之后,需要另外if.admin后台创建该

仓库路径下的访问路径,并将访问路径授权给用户或者用户组,这时用户才能正常访问苍鹭路径的东西

(3)如果提交代码发现有用户验证授权问题,需更改svn/repos/conf/svnserve.conf文件

放开注释:

出现authorization failed异常,与服务器端svn的三个配置文件有关

文件1:svnserve.conf:
[general]
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz

文件2:passwd:
[users]
test= 123456

文件3:authz:
[groups]
[/]
test= rw