1、简单介绍:

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

[root@localhost ~]#yum install wget unzip php httpd mod_dav_svn subversion mod_ldap mode_ssl -y

查看是否安装成功:

[root@localhost ~]#httpd -version
[root@localhost ~]#svnserve --version
[root@localhost ~]#ls /etc/httpd/modules/ | grep svn

3、配置apache:

3.1 如果你要使用svn内部认证,请参考下面的配置文件

[root@localhost ~]# 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
#vn的根目录SSLRequireSSL SSL访问权限
SVNParentPath /var/www/svn
#Basic认证方式
AuthType Basic
 #认证时显示的信息            
AuthName "Authorization SVN" 
#用户文件&密码
AuthUserFile /var/www/svn/passwd
#访问权限控制文件
AuthzSVNAccessFile /var/www/svn/authz
#要求真实用户,不能匿名
Require valid-user           
</Location>

3.2 如果你要集成微软活动目录或者其它LDAP服务,请参考以下配置:

[root@localhost ~]# vim /etc/httpd/conf.d/subversion.conf

LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_dbm_module modules/mod_authn_dbm.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_dbd_module modules/mod_authz_dbd.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule filter_module modules/mod_filter.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dir_module modules/mod_dir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
#装入SVN模块
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
#装LDAP模块
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule ldap_module modules/mod_ldap.so
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
SVNListParentPath On
AuthzSVNAccessFile /var/www/svn/authz
AuthType Basic
AuthName "Authorization SVN"
Authbasicprovider ldap #用于与AD建立链接的用户名 AuthLDAPBindDN "CN=test01,CN=Users,DC=mcse,DC=club" #用于与AD建立链接的密码 AuthLDAPBindPassword "*************" #绑定用户 AuthLDAPURL "ldap://172.17.224.105:389/DC=****,DC=****?sAMAccountName?sub?(objectClass=*)" #不允许匿名访问 Require valid-user
</Location>

4、建立SVN Server仓库:

#创建存储仓库的目录
[root@localhost ~]# mkdir /var/www/svn
#文件夹授权
[root@localhost ~]# chown -R apache.apache /var/www/svn
#创建用户文件passwd和权限控制文件authz
[root@localhost ~]# touch /var/www/svn/passwd
[root@localhost ~]# touch /var/www/svn/authz
#启动服务:
svnserve -d -r /var/www/svn

5. 配置安装PHP&IF.SVNadmin

 cd /tmp
wget http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download
unzip download
mkdir -p /var/www/html/svnadmin
cp -r iF.SVNAdmin-stable-1.6./* /var/www/html/svnadmin
chown -R apache.apache /var/www/html/svnadmin
chmod -R 777 /var/www/svn/passwd
chmod -R 777 /var/www/svn/authz
chmod -R 777 /var/www/html/svnadmin/data
#修改svnserve文件
vim /etc/sysconfig/svnserve
OPTIONS="-r /var/svn"
======> OPTIONS="-r /var/www/svn" 

6.关闭防火墙,启动服务

 firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload 
systemctl start httpd
systemctl enable httpd

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

8.如果需要使用https,建议你使用公网证书,对配置做如下配置:

[root@localhost ~]#vim /etc/httpd/conf.d/ssl.conf

Listen 443 https
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
<VirtualHost _default_:443>
ServerName svn.mcse.club:443
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA
#下面是两行是证书路径
SSLCertificateFile /etc/httpd/cert/svn.mcse.club.crt
SSLCertificateKeyFile /etc/httpd/cert/svn.mcse.club.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>

9.配置HTTP强制跳转到HTTPS

vim /etc/httpd/conf/httpd.conf

RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R]

另外一场景,只安装服务器核心,通过命令行来管理

1、yum 安装subversion

[root@localhost /] yum install subversion

2、创建仓库

[root@localhost /]# cd /home
[root@localhost home]# mkdir svn
[root@localhost home]# svnadmin create /home/svn

3.配置passwd

[root@localhost conf]# vi passwd
[users]
test1=123456
test2=123456

4、配置authz

[root@localhost conf]# vi authz
[/]
liuxianan=rw
test1=r
test2=r
*=

5、使用用户分组

格式说明:
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>

[root@localhost conf]# vi authz
[groups]
group1 = liuxianan
group2 = test1,test2
[/]
@group1 = rw
@group2 = r
* =

6、配置svnserve.conf

[root@localhost conf]# vi svnserve.conf
 #匿名用户可读
anon-access = read
 #授权用户可写
auth-access = write
 #使用哪个文件作为账号文件
password-db = passwd
#使用哪个文件作为权限文件
authz-db = authz
# 认证空间名,版本库所在目录
realm = /home/svn

7、启动与停止

[root@localhost conf]# svnserve -d -r /home/svn(启动)
[root@localhost conf]#kill all svnserve(停止)

客户端安装

https://www.cnblogs.com/ygj0930/p/6623148.html

其它参考链接

https://www.runoob.com/svn/svn-tutorial.html

Centos7 基于SVN+Apache+IF.svnadmin实现web管理的更多相关文章

  1. centos7搭建SVN+Apache+IF.svnadmin实现web管理SVN

    阅读目录 1. 介绍 2. 软件准备 3. 建立SVN Server仓库 4. 配置安装PHP&IF.SVNadmin 5. 启动服务 1.介绍 公司最近想把Windows server平台的 ...

  2. centos7基于SVN+Apache+IF.svnadmin实现SVN的web管理

    一.介绍 本文介绍的是CentOS7上搭建基于Apache.SVN Server.iF.svnadmin实现web后台可视化管理SVN. iF.SVNAdmin应用程序是Subversion授权文件基 ...

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

    阅读目录 1. 介绍 2. 软件准备 3. 建立SVN Server仓库 4. 配置安装PHP&IF.SVNadmin 5. 启动服务 1.介绍 公司最近想把Windows server平台的 ...

  4. SVN+Apache+IF.svnadmin支持https实现web管理SVN

    一,软件准备 .安装apache [root@localhost ~]# yum install httpd -y .安装svn服务器(其中,mod_dav_svn是apache服务器访问svn的一个 ...

  5. Centos7 搭建Svn+Apache服务器

    Svn客户端搭建 1.yum install subversion 2.查看安装版本 svnserve --version 3.创建SVN版本库目录 mkdir -p /opt/svn 4.创建版本库 ...

  6. Ubuntu下Apache+SVN+submin实现WEB管理SVN

    为什么需要submin管理SVN? 原来在Ubuntu下,都是直接通过命令行创建SVN仓库并分配权限,但是这有一些问题: 每创建一个SVN仓库,都需要修改httpd.conf 每创建一个帐户,都需要手 ...

  7. Linux CentOS7下svn+tomcat9.0+maven3.3+jenkins实现web项目自动构建与远程发布

    CentOS7下svn+tomcat9.0+maven3.3+jenkins实现web项目自动构建与远程发布 by:授客 QQ:1033553122 目录 一.    实践环境. 1 二.    安装 ...

  8. 基于jersey和Apache Tomcat构建Restful Web服务(二)

    基于jersey和Apache Tomcat构建Restful Web服务(二) 上篇博客介绍了REST以及Jersey并使用其搭建了一个简单的“Hello World”,那么本次呢,再来点有趣的东西 ...

  9. 基于jersey和Apache Tomcat构建Restful Web服务(一)

    基于jersey和Apache Tomcat构建Restful Web服务(一) 现如今,RESTful架构已然成为了最流行的一种互联网软件架构,它结构清晰.符合标准.易于理解.扩展方便,所以得到越来 ...

随机推荐

  1. Java的值类型和引用类型

    一.问题描述 前几天因为一个需求出现了Bug.说高级点也挺高级,说白点也很简单.其实也就是一个很简单的Java基础入门时候的值类型和引用类型的区别.只是开发的时候由于自己的问题,导致小问题的出现.还好 ...

  2. A.Math Problem

    题意:这里有n个区间,你需要添加一个区间,使得每个区间都至少有一个共同的点在这个区间,且长度最小,输出最小的长度. 分析:找出所有区间右端点的最小值,和所有区间左端点的最大值,然后答案就是max(0, ...

  3. 纯手工搭建K8s(单节点)

    准备说明: 因为为纯手动搭建,所以针对安装时需要的一些安装包需提前下载好 cfssl_linux-amd64. cfssljson_linux-amd64. cfssl-certinfo_linux- ...

  4. 用FPGA设计LCD 转 VGA

    这个东西其实是在上一个冬天就做完了,而且似乎已经产业化了,当时是为一位朋友做的,这个朋友再卖给产业化的人,就像流于俗套的故事一样,这个朋友拿到了钱,不过不像项目开始时说的那样与我有关.想想多年前一起吃 ...

  5. 【JS】306- 深入理解 call,apply 和 bind

    作者:一像素 链接:https://www.cnblogs.com/onepixel/p/6034307.html 在JavaScript 中,call.apply 和 bind 是 Function ...

  6. 2019百度阿里Java面试题(基础+框架+数据库+分布式+JVM+多线程)

    前言 很多朋友对面试不够了解,不知道如何准备,对面试环节的设置以及目的不够了解,因此成功率不高.通常情况下校招生面试的成功率低于1%,而社招的面试成功率也低于5%,所以对于候选人一定要知道设立面试的初 ...

  7. 手把手教你看懂并理解Arduino PID控制库——引子

    介绍 本文主要依托于Brett Beauregard大神针对Arduino平台撰写的PID控制库Arduino PID Library及其对应的帮助博客Improving the Beginner’s ...

  8. 2016/10/13 Oracle COALESCE()

    语法:COALESCE(s1,s2,...,sn),n>=2,此表达式的功能为返回第一个不为空的表达式,如果都为空则返回空值. 现有表tb_a: 实例1:在tb_a表中给sname列为空的人员设 ...

  9. 聊一聊 webpack 中的 preloading 和 Prefetching

    聊一聊 webpack 中的 preloading 和 Prefetching 提到 Preloading 和 Prefetching 就不得不先说一下代码分割,通过下面的例子我们来说明为什么需要代码 ...

  10. [系列] Go 使用 defer 函数 要注意的几个点

    概述 defer 函数大家肯定都用过,它在声明时不会立刻去执行,而是在函数 return 后去执行的. 它的主要应用场景有异常处理.记录日志.清理数据.释放资源 等等. 这篇文章不是分享 defer ...