一.介绍 

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

iF.SVNAdmin

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

二.软件准备

安装相关的软件包

1.安装Apache

# yum install httpd -y

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

# yum install mod_dav_svn subversion -y

3.安装完成后,通过如下命令查看是否安装成功

# svnserve --version
svnserve, version 1.7.14 (r1542130)
   compiled Apr 11 2018, 02:40:28

Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository back-end (FS) modules are available:

* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available.

# httpd -version
Server version: Apache/2.4.6 (CentOS)
Server built:   Jun 27 2018 13:48:59

# ls /etc/httpd/modules/ |grep svn
mod_authz_svn.so
mod_dav_svn.so

3.在Apache下配置svn

# vim /etc/httpd/conf.d/subversion.conf

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
AuthType Basic
AuthName "Authorization SVN"
AuthUserFile /var/www/svn/passwd
Require valid-user
AuthzSVNAccessFile /var/www/svn/authz
</Location>

 

以下是解释上述编辑的内容,测试过在后面接#号注释后,启动Apache会报错,因此单独拿出来解释备注下
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的根目录
    AuthType Basic                          #Basic访问权限            
    AuthName "Authorization SVN"            #认证时显示的信息
    AuthUserFile /var/www/svn/passwd        #用户文件&密码
    Require valid-user                       #要求真实用户,不能匿名
    AuthzSVNAccessFile /var/www/svn/authz    #访问权限控制文件
</Location>

三.建立SVN Server仓库 

通过如下命令建立svn仓库

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

# mkdir /var/www/svn
# svnadmin create /var/www/svn/guoke
# ls /var/www/svn/guoke
conf  db  format  hooks  locks  README.txt
# chown -R apache.apache /var/www/svn

创建用户文件passwd和权限控制文件authz

# touch /var/www/svn/passwd

# touch /var/www/svn/authz

四.配置安装PHP&IF.SVNadmin 

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

# yum install -y php
安装配置iF.SVNAdmin
# wget http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download     ------这只能下载download文件,可以先登上浏览器输入网址,先下载到本地再传到服务器

# unzip svnadmin-1.6.2.zip

# cp -r iF.SVNAdmin-stable-1.6.2/ /var/www/html/svnadmin

# cd /var/www/html

# chown -R apache.apache svnadmin

# cd /var/www/html/svnadmin

# chmod -R 777 data

五.启动服务   

如果开启了防火墙, 需要开启httpd访问权限,没有开防火墙就不用管

# firewall-cmd --list-ports       -----查看防火墙情况

# firewall-cmd --permanent --add-service=http       ------增加HTTP(80)端口

# firewall-cmd --permanent --add-service=https       -----增加HTTPS(443)端口

# firewall-cmd --reload         ------重新加载防火墙

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

# vim /etc/sysconfig/svnserve

# OPTIONS is used to pass command-line arguments to svnserve.
# 
# Specify the repository location in -r parameter:
#OPTIONS="-r /var/svn"
OPTIONS="-r /var/www/svn"

通过如下命令来启动服务,注意如若启动报错,看看是否是80端口被占用了

# systemctl start httpd

设置开机启动

# systemctl enable httpd.service

重启Apache

# systemctl restart httpd

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

centos 创建svn服务器 centos svn服务器搭建web_svn

 

 

centos 创建svn服务器 centos svn服务器搭建web_apache_02

centos 创建svn服务器 centos svn服务器搭建web_Apache_03

保存后,会提示默认的账户为admin/admin。登陆后我们可以在“Repositories”下“add”,添加项目目录;

在"Users"下添加用户;在“Access-Paths”下关联对应项目的用户,并分配相关读写权限。

centos 创建svn服务器 centos svn服务器搭建web_Apache_04