1、简单介绍:

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

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

查看是否安装成功:

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

3、配置apache:

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

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

  1. LoadModule dav_svn_module modules/mod_dav_svn.so
  2. LoadModule authz_svn_module modules/mod_authz_svn.so
  3. <Location /svn>
  4. DAV svn
  5. #vn的根目录SSLRequireSSL SSL访问权限
  6. SVNParentPath /var/www/svn
  7. #Basic认证方式
  8. AuthType Basic
  9.  #认证时显示的信息            
  10. AuthName "Authorization SVN" 
  11. #用户文件&密码
  12. AuthUserFile /var/www/svn/passwd
  13. #访问权限控制文件
  14. AuthzSVNAccessFile /var/www/svn/authz
  15. #要求真实用户,不能匿名
  16. Require valid-user           
  17. </Location>

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

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

  1. LoadModule authn_file_module modules/mod_authn_file.so
  2. LoadModule authn_anon_module modules/mod_authn_anon.so
  3. LoadModule authn_dbd_module modules/mod_authn_dbd.so
  4. LoadModule authn_core_module modules/mod_authn_core.so
  5. LoadModule authz_host_module modules/mod_authz_host.so
  6. LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
  7. LoadModule authz_user_module modules/mod_authz_user.so
  8. LoadModule authz_dbm_module modules/mod_authn_dbm.so
  9. LoadModule authz_owner_module modules/mod_authz_owner.so
  10. LoadModule authz_dbd_module modules/mod_authz_dbd.so
  11. LoadModule authz_core_module modules/mod_authz_core.so
  12. LoadModule access_compat_module modules/mod_access_compat.so
  13. LoadModule auth_basic_module modules/mod_auth_basic.so
  14. LoadModule reqtimeout_module modules/mod_reqtimeout.so
  15. LoadModule filter_module modules/mod_filter.so
  16. LoadModule deflate_module modules/mod_deflate.so
  17. LoadModule mime_module modules/mod_mime.so
  18. LoadModule log_config_module modules/mod_log_config.so
  19. LoadModule env_module modules/mod_env.so
  20. LoadModule headers_module modules/mod_headers.so
  21. LoadModule setenvif_module modules/mod_setenvif.so
  22. LoadModule version_module modules/mod_version.so
  23. LoadModule ssl_module modules/mod_ssl.so
  24. LoadModule unixd_module modules/mod_unixd.so
  25. LoadModule dav_fs_module modules/mod_dav_fs.so
  26. LoadModule dir_module modules/mod_dir.so
  27. LoadModule alias_module modules/mod_alias.so
  28. LoadModule rewrite_module modules/mod_rewrite.so
  29. #装入SVN模块
  30. LoadModule dav_svn_module modules/mod_dav_svn.so
  31. LoadModule authz_svn_module modules/mod_authz_svn.so
  32. #装LDAP模块
  33. LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
  34. LoadModule ldap_module modules/mod_ldap.so
  35. <Location /svn>
  36. DAV svn
  37. SVNParentPath /var/www/svn
  38. SVNListParentPath On
  39. AuthzSVNAccessFile /var/www/svn/authz
  40. AuthType Basic
  41. AuthName "Authorization SVN"
  42. Authbasicprovider ldap
  43.  
  44. #用于与AD建立链接的用户名
  45.  
  46. AuthLDAPBindDN "CN=test01,CN=Users,DC=mcse,DC=club"
  47.  
  48. #用于与AD建立链接的密码
  49.  
  50. AuthLDAPBindPassword "*************"
  51.  
  52. #绑定用户
  53.  
  54. AuthLDAPURL "ldap://172.17.224.105:389/DC=****,DC=****?sAMAccountName?sub?(objectClass=*)"
  55.  
  56. #不允许匿名访问
  57.  
  58. Require valid-user
  59. </Location>

4、建立SVN Server仓库:

  1. #创建存储仓库的目录
  1. [root@localhost ~]# mkdir /var/www/svn
  1. #文件夹授权
  1. [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

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

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

  1. firewall-cmd --permanent --add-service=http
  2. firewall-cmd --permanent --add-service=https
  3. firewall-cmd --reload 
  4. systemctl start httpd
  5. systemctl enable httpd

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

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

  1. [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

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

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

1、yum 安装subversion

  1. [root@localhost /] yum install subversion

2、创建仓库

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

3.配置passwd

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

4、配置authz

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

5、使用用户分组

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

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

6、配置svnserve.conf

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

7、启动与停止

  1. [root@localhost conf]# svnserve -d -r /home/svn(启动)
  1. [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. ThreadLocal的进化——InheritableThreadLocal

    之前有介绍过 ThreadLocal,JDK 后来针对此做了一个升级版本 InheritableThreadLocal,今天就来好好介绍下. 为什么要升级 首先我们来想想,为什么要升级?这就要说起 T ...

  2. [TimLinux] JavaScript 引用类型——Date

    1. Date var now = new Date(); // 不传参数,获取当前日期.时间. now.getDay(); // 日期 now.getMonth(); // 月份 now.getFu ...

  3. leaflet 结合 geoserver 实现地图空间查询(附源码下载)

    前言 leaflet 入门开发系列环境知识点了解: leaflet api文档介绍,详细介绍 leaflet 每个类的函数以及属性等等 leaflet 在线例子 leaflet 插件,leaflet ...

  4. 【新】Docker实战总结

    >>> 目录 <<< Docker简介 Docker优势 Docker基本概念 Docker安装使用 Docker常用命令 Docker镜像构建 Docker本地仓 ...

  5. NAT(地址解析协议)

    第七部分,也是本次更新的最后一部分,NAT(Network Address Translation),即地址解析协议.通俗理解,地址解析协议就是当一个单位只拥有一个公网ip地址,当内网中的主机想要访问 ...

  6. 【算法】342- JavaScript常用基础算法

    一个算法只是一个把确定的数据结构的输入转化为一个确定的数据结构的输出的function.算法内在的逻辑决定了如何转换. 基础算法 一.排序 1.冒泡排序 //冒泡排序function bubbleSo ...

  7. Ubuntu19.10安装

    # 有一说一,UI好看多了 正文开始 # 1.做U盘 ​ # 2.修改BIOS选择U盘引导 ​ 底下有提示,F5/F6切换项目 # 3.进入引导盘 ​ 这个界面多了比19.10之前的版本多了两个选项, ...

  8. chrome显示正常,IE报400的错

    发现是因为参数里面有一个是中文,应该是IE没有转码,所以会报错,只要用encodeURI()实现转码即可

  9. docker网络配置

    Docker网络配置 Docker网络模式介绍 Docker在创建容器时有四种网络模式:bridge/host/container/none,bridge为默认不需要用--net去指定,其他三种模式需 ...

  10. require与import

    require 和 import,都是为了JS模块化使用.最近项目中,因为多人协同开发,出现了一个项目中同时使用了require 和 import 引入依赖的情况.正常情况下,一个项目中最好是对引入方 ...