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那就都需要关闭,看端口、后台程序是否都在!

svn_linux + apache 实现网页访问svn的更多相关文章

  1. win平台,apache通过web访问svn

    上个月用php写一个在线打包lua变成luac,碰到个权限问题.pysvn无法更新.网上搜了好半天都找不到解决方法.最好还是自己解决了. 解决方法也很简单,找到aphache服务,提权限就行了.lin ...

  2. CentOS搭建SVN服务器,并通过Apache HTTP方式访问

    摘要:本文主要讲述了在centos 6.5环境下搭建svn服务器,可通过svn:\\IP方式访问.同时由于部分公司内网端口限制,并不能访问外网的svn服务器,所以特地结合了apache服务器,使得可以 ...

  3. 使用 svn://ip/filename 方式访问svn 资源库

    a. 下载 SVN的官方网站为 http://subversion.tigris.org/,当前最新版本为1.4.2.Windows下的二进制安装包分为两种,一种是以setup结尾的安装文件,另一种是 ...

  4. CentOS+Apache+php无法访问redis的解决方法

    PHP 使用 Redis 安装 开始在 PHP 中使用 Redis 前, 我们需要确保已经安装了 redis 服务及 PHP redis 驱动,且你的机器上能正常使用 PHP. 接下来让我们安装 PH ...

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

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

  6. 用户对动态PHP网页访问过程,以及nginx解析php步骤

    www.example.com | Nginx | 路由到www.example.com/index.php | 加载nginx的fast-cgi模块 | fast-cgi监听127.0.0.1:90 ...

  7. CentOS 7 配置HTTPS加密访问SVN

    上一篇文章已经介绍了如何在CentOS7环境下安装SVN并整合HTTP访问 http://www.cnblogs.com/fjping0606/p/7581093.html 那么本文则介绍如何添加HT ...

  8. apache测试网页执行效率

    apache软件下有一个测试网页访问速度的工具ab.exe,位于apache的bin目录下,windows下使用命令行进入bin目录,执行ab.exe -n 10000 -c 10 http://12 ...

  9. Centos虚拟机SVN的安装和使用http方式访问svn服务器

    1.查看是否安装旧版SVNrpm -qa | grep subversion2.卸载旧版本SVNyum remove subversion3.安装SVNyum -y install subversio ...

随机推荐

  1. Python笔记 【无序】 【二】

    序列list() ——把一个可迭代对象[可以是字符串,元组]转化为列表,可不带参数——生成空列表,或者带一个迭代器作为参数tuple() ——可迭代对象转化为元组str(obj) ——把obj对象转换 ...

  2. Angular 创建组件

    创建组件 0 命令创建 1 创建组件 定义hello.component.ts组件 在app.module.ts中引用并添加到declarations声明中 在app.component.html中使 ...

  3. Delphi XE-Windows下配置开发环境 (Android版/IOS)

    Delphi XE-Windows下配置开发环境  (Android版/IOS)   http://www.52jike.com/thread-1-1-1.html Delphi XE5的Androi ...

  4. nginx的linux服务器内核参数调整【转】

    概述 由于默认的linux内核参数考虑的是最通用场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数,让Nginx可以拥有更高的性能: 在优化内核时,可以做的事情很 ...

  5. pt-table-sync 使用方法【转】

    28. pt-table-sync28.1 pt-table-sync 作用 使用对两个库不一致的数据进行同步,他能够自动发现两个实例间不一致的数据,然后进行sync操作,pt-table-sync无 ...

  6. C/C++中可变参数函数的实现

    在C语言的stdarg.h头文件中提供了三个函数va_start, va_end,va_arg和一个类型va_list.利用它们,我们可以很容易实现一个可变参数的函数.首先简单介绍一下这三个函数. 假 ...

  7. Select查询命令

    一开始SELECT查询的命令为     SELECT * FROM employee;     SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;     若要查询所有内容,就用*代 ...

  8. JDK的安装及环境变量配置

    JDK的安装及环境变量配置 JDK解释:直达详细解释. 1.JDK下载地址:点击直达官网下载 进入后,如图1,点击图中红框DOWNLOAD按钮进入下载页 进入下载页后,在下载也底端,根据自己的需求下载 ...

  9. Java二维码生成与解码

      基于google zxing 的Java二维码生成与解码   一.添加Maven依赖(解码时需要上传二维码图片,所以需要依赖文件上传包) <!-- google二维码工具 --> &l ...

  10. __dict__(字典的另一种用法)

    class Foo(): def __init__(self): self.name=None self.age=19 self.addr='上海' @property def dict(self): ...