zoukankan      html  css  js  c++  java
  • Centos7 基于SVN+Apache+IF.svnadmin实现web管理

    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

    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.2/* /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,建议你使用公网证书,对配置做如下配置:

    [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

      

  • 相关阅读:
    捕获异常的两种方式Exception
    线程的随机性
    单例模式简单解析--Singleton 单例模式(懒汉方式和饿汉方式)
    LeetCode 116. 填充每个节点的下一个右侧节点指针
    LeetCode 129. 求根到叶子节点数字之和
    LeetCode 124. 二叉树中的最大路径和
    LeetCode 119. 杨辉三角 II
    LeetCode 118. 杨辉三角
    LeetCode 113. 路径总和 II
    LeetCode 114. 二叉树展开为链表
  • 原文地址:https://www.cnblogs.com/vcdx/p/11139811.html
Copyright © 2011-2022 走看看