• svn_linux + apache 实现网页访问svn


    1. 安装httpd

    安装httpd服务:

    $ sudo yum install httpd

    检查httpd是否安装成功:

    $ httpd -version
    Server version: Apache/2.4.6 (CentOS)
    Server built:   Jul 18 2016 15:30:14

    2. 安装svnserve

    安装svnserve服务:

    $ sudo yum install subversion

    检查svnserve是否安装成功:

    $ svnserve --version
    svnserve, version 1.7.14 (r1542130)
    compiled Nov 20 2015, 19:25:09

    3. 按住mod_dav_svn

    mod_dav_svn是apache服务器访问svn的一个模块。通过yum安装:

    $ sudo yum install mod_dav_svn

    安装成功后,会有mod_dav_svn.so和mod_authz_svn.so两个文件。

    $ sudo find / -name mod_dav_svn.so
    /usr/lib64/httpd/modules/mod_dav_svn.so
    
    $ sudo find / -name mod_authz_svn.so
    /usr/lib64/httpd/modules/mod_authz_svn.so

    4. 创建svn仓库

    $ sudo mkdir /var/www/svn
    $ sudo svnadmin create /var/www/svn/spring-hello-world
    
    $ ll /var/www/svn/
    drwxr-xr-x. 6 root root 80 Nov 10 14:42 spring-hello-world
    
    $ ll /var/www/svn/spring-hello-world/
    drwxr-xr-x. 2 root root   51 Nov 10 14:42 conf
    drwxr-sr-x. 6 root root 4096 Nov 10 14:42 db
    -r--r--r--. 1 root root    2 Nov 10 14:42 format
    drwxr-xr-x. 2 root root 4096 Nov 10 14:42 hooks
    drwxr-xr-x. 2 root root   39 Nov 10 14:42 locks
    -rw-r--r--. 1 root root  229 Nov 10 14:42 README.txt

    5. 配置权限

    修改svn仓库的用户组为apache:

    $ sudo chown -R apache:apache /var/www/svn/spring-hello-world/

    创建用户文件passwd:

    $ sudo touch /var/www/svn/passwd  #创建用户文件
    
    $ sudo htpasswd /var/www/svn/passwd admin  #创建用户admin
    $ sudo htpasswd /var/www/svn/passwd guest  #创建用户guest
    
    $ cat /var/www/svn/passwd 
    admin:$apr1$UCkPzZ2x$tnDk2rgZoiaURPzO2e57t0
    guest:$apr1$vX1RIUq6$OKS1bqKZSptzsPDYUOJ5x.

    创建权限文件authz:

    $ sudo cp /var/www/svn/spring-hello-world/conf/authz /var/www/svn/authz
    
    $ cat /var/www/svn/authz 
    [/]
    admin = rw
    guest = r

     6. 配置httpd

    $ sudo touch /etc/httpd/conf.d/subversion.conf
    
    $ cat /etc/httpd/conf.d/subversion.conf 
    <Location /svn>
        DAV svn
        SVNParentPath /var/www/svn
    
        AuthType Basic
        AuthName "Authorization SVN"
        AuthzSVNAccessFile /var/www/svn/authz
        AuthUserFile /var/www/svn/passwd
        Require valid-user
    </Location>

    7. 启动httpd服务

    $ sudo systemctl start httpd.service

    svnserve -d -r /var/www/svn/ ###只要没有报错就可以,为了保险ps aux | grep svn 能看到后台程序

    7.1、记住/var/www/svn/目录下面的authz和passwd文件是所有仓库的验证文件,在仓库下面的conf目录下的authz、passswd密码文件不用动即可,
       但是需要配置仓库下面的conf目录的senserve.conf仓库主配置文件,里面指定authz、passwd文件的绝对路径,和开启anon-access两个即可

    客户端使用http://192.168.12.59/svn/spring-hello-world就可以访问刚才建立的svn仓库了。 如果返回403错误,可能是防火墙问题。增加防火墙规则:

    $ sudo firewall-cmd --permanent --add-service=http
    $ sudo firewall-cmd --permanent --add-service=https
    $ sudo firewall-cmd --reload



    7.2、思路整理:
      1、URL路径不对:看看仓库的位置和你填写的是否一致,只需要在ip后面写仓库名字即可
      2、无权限下载或提交:就去全局配置里面的authz、passwd文件仔细检查,
        在apahce+svn配合模式下passwd下的文件需要加密生成的用户密码,明文是不允许且读取不到的
    3、提交或者访问超时等:防火墙开了没,centos7增加了firewalld的如果还安装了iptables那就都需要关闭,看端口、后台程序是否都在!






















    魅力男神
  • 相关阅读:
    数据仓库
    HiveSQL 数据定义语言(DDL)
    HiveSQL 数据操控、查询语言(DML、DQL)
    【ASP.NET Core】Blazor+MiniAPI完成文件下载
    MySQL的WAL(WriteAhead Logging)机制
    MySQL系列 | 索引数据结构大全
    眼见为实,看看MySQL中的隐藏列
    mysql的默认隔离级别:可重复读(Repeatable Read)
    缓存淘汰算法LRU算法
    Android设计模式系列(12)SDK源码之生成器模式(建造者模式)
  • 原文地址:https://www.cnblogs.com/capable/p/6634230.html
Copyright © 2020-2023  润新知