zoukankan      html  css  js  c++  java
  • CentOS搭建svn服务器支持https访问

    CentOS6.3 64位机器上配置SVN服务器,并设置只允许HTTPS连接,可以配置多个repos源,每个源都拥有自己的组和成员,用于权限控制。
    1. 安装相关软件

      Apache

      yum install httpd httpd-devel

      Subversion

      yum install mod_dav_svn subversion

      SSL

      yum  install mod_ssl  openssl

      创建版本库

      #mkdir /var/svn  
      #cd /var/svn  
      #svnadmin create myapp  
      #chown -R apache.apache myapp  
      #chcon -R -t httpd_sys_content_t myapp          //selinux相关 

      相似的,我添加了另一个版本库myapp2

      修改配置文件/etc/httpd/conf.d/subversion.conf,添加如下内容

      <Location /repos>  
        DAV svn  
        SVNParentPath /var/svn  
        AuthType Basic  
        AuthName "Authorization Realm"  
        AuthUserFile /var/svn/passwd                  //用户文件  
        AuthzSVNAccessFile /var/svn/authz              //用户权限控制文件  
        Require valid-user  
      </Location> 

      此处需要注意添加/var/svn/passwd文件的相关权限,否则可能出想权限错误。相关日志文件为/var/log/httpd/error_log 遇到问题要查看错误日志。

      用户文件passwd的内容只能通过htpasswd命令添加

      如添加用户leon

      #htpasswd -c /var/svn/passwd leon                //-c 表示新建一个文件,以后就不需要加了 

      相似的我添加了其他用户hailong,gao,wang

      用户权限控制文件authz

      [groups]  
      myapp = leon,hailong                              //myapp项目有两个成员leon和hailong  
      myapp2 = wang, gao  
        
      [myapp:/]  
      @myapp = rw                                      //myapp组拥有myapp项目的读写权限,其他人无权限  
        
      [myapp2:/]  
      @myapp2 = rw 

      这样就做到权限控制。

      可能遇到的问题
      1.权限问题
      通过查看错误日志,添加相关权限。重点注意SeLinux引起的权限问题,可以暂时关闭SeLinux,方法:setenforce 0,SeLinux的管理方法参考CSDN网站http://blog.csdn.net/haiong0707/article/details/813763
    2. 防火墙问题
      关闭防火墙或者打开相关端口
    3. 通过上面的配置,SVN服务器通过HTTP访问基本就没有问题了,接着配置HTTPS访问

      1. #cd /etc/pki/tls/private

      2. #openssl genrsa -out my.key 1024

      3. #openssl req -new -key my.key -out my.csr

      4. #cd /etc/pki/tls/certs

      5. #openssl x509 -req -days 365 -in /etc/pki/tls/private/my.csr -signkey /etc/pki/tls/private/my.key -out my.crt


      以上步骤必须在相关文件夹下产生所需的文件,保证输入命令正确,保证产生文件所在文件夹正确,否则后面将可能发生错误

       

      修改/etc/httpd/conf.d/ssl.conf文件

      1. SSLCertificateFile /etc/pki/tls/certs/my.crt

      2. SSLCertificateKeyFile /etc/pki/tls/private/my.key


      修改/etc/httpd/conf/httpd.conf文件

      1. <Directory />

      2. Options FollowSymLinks

      3. AllowOverride None

      4. SSLRequireSSL //添加此行

      5. </Directory>



      重启httpd

      1. #service httpd restart


      如此SVN就只可以通过HTTPS访问了,并且能够对多个项目分配人员和权限。

       

      可能遇到的问题

      1.SVN开启HTTPS加密后,所有的WEB访问都变成HTTPS,例如,localhost将无法访问,需要访问https://localhost,这个应该是可以在https.conf文件中配置区分的,暂时不做处理,故建议此服务器不再当作WEB服务器。

       

      ----------------------------------------------------------------------------------------------------------------

      localhost需要https的解决方法

      不在httpd.conf添加 SSLRequireSSL ,添加到subversion.conf

      1. <Location /repos>

      2. DAV svn

      3. SVNParentPath /var/svn

      4. AuthType Basic

      5. AuthName "Authorization Realm"

      6. AuthUserFile /var/svn/passwd //用户文件

      7. AuthzSVNAccessFile /var/svn/authz //用户权限控制文件

      8. Require valid-user

      9. SSLRequireSSL //需要https加密访问

      10. </Location>

      这样,只有/repos目录需要https加密访问,不影响httpd做web服务器

      转载自:http://blog.csdn.net/haiong0707/article/details/8259235


      Linux 下svn恢复到某一版本经常由于坑爹的需求,功能要切回到之前的某一个版本。有两种方法可以实现:方法1: 用svn merge1) 先 svn up,保证更新到最新的版本,如20;2) 然后用 svn log ,查看历史修改,找出要恢复的版本,如10 。如果想要更详细的了解情况,可以使用svndiff -r 10:20 [文件或目录];3) 回滚到版本号10:svnmerge -r 20:10 [文件或目录],注意版本号之间的顺序,这个叫反向合并;4) 查看当前工作版本中的文件,如test.cpp和版本号10中文件的差别:svn diff -r 10 test.cpp, 有差别则手动改之;5) 若无差别,则提交:svn ci -m“back to r 10,xxxxx” [文件或目录]。这时svn库中会生成新的版本,如21。方法2: 用svn up前2步如方法1,然后直接 svn up -r 10。当前的工作版本就是版本10了。但是注意,这时svn库中会并不会生成新的版本,下次在本地svn up之后,还是会回到之前的版本。





    user:Felix mail:wudonghang@wudonghang.com If you have questions or suggestions, please contact the author.
  • 相关阅读:
    Hoder.js介绍
    vim折叠方法
    tensorflow最基础分类实例--iris分类
    语音识别GMM-HMM
    亨元模式
    责任链模式
    命令模式
    策略模式
    工厂模式
    Java高并发程序设计(十)--无锁
  • 原文地址:https://www.cnblogs.com/wudonghang/p/5167142.html
Copyright © 2011-2022 走看看