SVN 服务器的安装及其 HTTPS 实现_svn安装使用https_kefeng-wang的博客-程序员秘密

技术标签: Java研发管理  http-https  svn  centos  

目前主流的版本管理软件是 GIT 和 SVN。GIT 更强大更方便,是潮流,优先推荐。但国内很多公司仍在用 SVN,本文总结了 CentOS 7 环境下 SVN 的安装,及其 http / https 协议的配置方法,后续再介绍 GIT 相关内容。

作者:王克锋
出处:https://kefeng.wang/2016/12/31/svn-server/
版权:自由转载-非商用-非衍生-保持署名,转载请标明作者和出处。

1 安装 SVN(V1.7.14)

1.1 安装

sudo yum -y install subversion # 安装 SVN
sudo svnserve --version # 查看版本(1.7.14)
sudo mkdir -p /var/svn/repo1 # 创建版本库目录
sudo svnadmin create /var/svn/repo1 # 创建版本库

1.2 配置

配置帐号:

## sudo vim /var/svn/repo1/conf/passwd
[users]
kevin=kevin123
john=john123
mike=mike123

配置权限:

## sudo vim /var/svn/repo1/conf/authz
[groups]
dev = kevin
qa = john,mike

[repo1:/]
@dev = rw
@qa = r

配置服务:

## sudo mv /var/svn/repo1/conf/svnserve.conf{,.bak}
## sudo grep -v "###" /var/svn/repo1/conf/svnserve.conf.bak | sudo tee /var/svn/repo1/conf/svnserve.conf
## sudo vim /var/svn/repo1/conf/svnserve.conf
[general]
anon-access = none ## 匿名用户可读(关闭)
auth-access = write ## 授权用户可写
password-db = passwd ## 指定账号配置文件
authz-db = authz ## 指定权限配置文件
realm = /var/svn/repo1 ## 认证空间名

1.3 关闭 SELinux 模式

# sudo vim /etc/selinux/config
# mode of SELinux: enforcing=enable, permissive=disable
# SELINUX=enforcing
SELINUX=permissive

Linux sudo reboot 之后生效。

如果漏掉此操作,使用 svn co 时会报错:

svn: E000013: Unable to connect to a repository at URL 'svn://centos/repo1'
svn: E000013: Can't open file '/var/svn/repo1/format': Permission denied

1.4 启动服务

sudo systemctl enable svnserve
sudo systemctl start svnserve

1.5 防火墙放行

### sudo vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
### 重启生效: sudo systemctl restart iptables

1.6 卸载

如果想重装,需先卸载:

sudo systemctl stop svnserve
sudo systemctl disable svnserve
sudo yum -y remove subversion
sudo rm -rf /var/svn/repo1

1.7 客户端验证(svn://xxx)

svn co svn://centos/repo1 # 提示输入用户名密码,并保存
cd repo1
echo "aaa" > aaa.txt
svn add *
svn ci -m "test"

1.8 客户端清除 SVN 保存的帐户信息

1.8.1 Windows 环境

TortoiseSVN 软件:资源管理器右键菜单,TortoiseSVN / Settings,Saved Data / Authentication data,Clear
命令行执行:rd/s/q %APPDATA%\Subversion\auth

1.8.2 Linux 环境

rm -rf ~/.subversion/auth

2 开通 HTTP 协议

参考资料: http://svnbook.red-bean.com/en/1.7/svn.serverconfig.httpd.html

2.1 安装 httpd 及其 SVN 模块

sudo yum -y install deltarpm ## 增量 RPM 套件
# sudo yum -y remove httpd mod_dav_svn
sudo yum -y install httpd mod_dav_svn

2.2 确认模块 dav/dav_svn 已加载

## grep -E "dav_module" /etc/httpd/conf.modules.d/00-dav.conf
LoadModule dav_module modules/mod_dav.so
## grep -E "dav_svn_module" /etc/httpd/conf.modules.d/10-subversion.conf
LoadModule dav_svn_module     modules/mod_dav_svn.so

2.3 SVN HTTP 配置

## sudo chown -R apache:apache /var/svn/repo1/ ## 将 SVN 版本库所有者改为 apache(httpd 进程的启动用户)
## sudo vim /etc/httpd/conf.d/subversion.conf
<Location /svn>
    DAV svn ## mod_dav_svn 模拟,是 HTTP 1.1 的扩展,用来支持 SVN
    SVNParentPath /var/svn ## SVN HTTP 的根目录
    AuthType Basic ## 认证类型
    AuthName "SVN repository" ## 输入用户名和密码时的提示信息
    AuthUserFile /etc/httpd/svn-auth.htpasswd ## 认证文件的位置,需要手工创建

    # Authorization: Authenticated users only
    Require valid-user
</Location>

2.4 创建 SVN HTTP 用户

## 首个用户必须指定 -c 用于新建文件 svn-auth.htpasswd
## 后续用户必须不要指定 -c, 否则文件会被新建;-m 表示以 md5 加密密码
sudo htpasswd -cm /etc/httpd/svn-auth.htpasswd kevin ## 需要指定密码两次(最好与SVN的passwd一致)
sudo htpasswd -m /etc/httpd/svn-auth.htpasswd john ## 需要指定密码两次(最好与SVN的passwd一致)
sudo htpasswd -m /etc/httpd/svn-auth.htpasswd mike ## 需要指定密码两次(最好与SVN的passwd一致)
sudo cat /etc/httpd/svn-auth.htpasswd

2.5 启动 httpd 服务

sudo systemctl enable httpd
sudo systemctl restart httpd
sudo tail -f /var/log/httpd/error_log

2.6 防火墙放行

### sudo vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
### 重启生效: sudo systemctl restart iptables

2.7 客户端验证(http://xxx)

Windows 下使用 Chrome 浏览器访问: http://kefeng.wang/svn/repo1/
输入用户名 kevin 及其密码,成功。

3 开通 HTTPS 协议

3.1 安装 ssl 模块

sudo yum -y install mod_ssl openssl

3.2 生成证书

详细资料请参考我前面的文章:Nginx 负载均衡及其 HTTPS 部署

sudo mkdir /etc/httpd/ssl
sudo cp nginx.key /etc/httpd/ssl/httpd.key
sudo cp nginx.crt /etc/httpd/ssl/httpd.crt

3.3 配置证书

## sudo vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile    /etc/httpd/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key

如果要停用 https 改用 http,只需注释下面的 SSLRequireSSL 一行。

### sudo vim /etc/httpd/conf.d/subversion.conf
<Location /svn>
    ## ......

    Require valid-user
    SSLRequireSSL
</Location>

3.4 重启服务

sudo systemctl restart httpd

3.5 防火墙放行

### sudo vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
### 重启生效: sudo systemctl restart iptables

3.6 客户端验证(https://xxx)

Windows 下使用 Chrome 浏览器访问: https://kefeng.wang/svn/repo1/
输入用户名 kevin 及其密码,成功。
此时只能使用 https 访问,http 已被禁用。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/kefengwang/article/details/54233568

智能推荐

win7激活提示错误代码0x80072EE2的最可行解决办法_ysdwjm880301的博客-程序员秘密

很多同学在激活win7旗舰版,专业版和家庭版的时候遇到过提示错误代码0x80072EE2的困难,小编经过几次周折,终于完美解决问题,下面小编就把相关经验为大家分享一下。一,首先保证你的密钥是可用的,如果密钥失效或者被别人用完,那是任何方法都解决不了的,小编下面为大家分享几组亲测可用的win7旗舰版密钥。如果密钥失效或者不能使用,可以联系vx : zxc786455244  获取最新可用密钥。FJG...

深入浅出CChart 每日一课——快乐高四第三十四课 不忘初心,Fortran控制台绘制曲线图_fortran 程序的控制图_baita96的博客-程序员秘密

笨笨学的第一门编程语言,就是Fortran,当时用的是谭浩强老师编写的教材。不像计算机专业的人士,貌似他们一般要先学Pascal。岁月轮回春多少,得失淡淡笑一笑,笑问人间谁是客,无来无去莫计较。现在,笨笨用C++比较多,Fortran基本上都还给老师了!但是,感觉Fortran还是挺有用的。Fortran源自于“公式翻译”(英语:FormulaTranslation)的缩写,是一种编程...

器件选型-温度传感器_温度传感器选型分析csdn_打怪升级ing的博客-程序员秘密

温度传感器是当今众多产品应用中最常用的技术之一,比如应用在汽车、白电和工业类产品等中。为了进行可靠的温度测量,选择合适的温度传感器十分重要。了解不同类型温度传感器的优缺点有助于在测量前做出正确的选择。热电偶、热敏电阻(NTC / PTC)、电阻温度检测器(RTD)和芯片型温度传感器是测量中最常见的类型,它们的特性区别详情见下表。  热电偶 热敏电阻 ...

输入n,用最快的方法求Fibonacci 数列的第n 项_Vast_Sea的博客-程序员秘密

题目:定义Fibonacci 数列如下:/ 0 n=0f(n)= 1 n=1\ f(n-1)+f(n-2) n=2输入n,用最快的方法求该数列的第n 项。分析:在很多C 语言教科书中讲到递归函数的时候,都会用Fibonacci 作为例子。因此很多程序员对这道题的递归解法非常熟悉,但....呵呵,你知道的。。ANSWER:This is the traditional

文件管理html5模板,简洁大气的html5 Bootstrap后台管理系统模板_无柴可养小法师的博客-程序员秘密

codedown123-0729-23/404-page.html,1661codedown123-0729-23/buttons.html,77348codedown123-0729-23/calendar.html,18591codedown123-0729-23/charts.html,24691codedown123-0729-23/chat.html,28912cod...

随便推点

使用docker 1.12 搭建多主机docker swarm集群_swarm 多实例端口_houdaiye的博客-程序员秘密

使用docker 1.12 搭建多主机docker swarm集群准备准备至少两台的centos 7 主机(全新最小安装, 可以使用虚拟机安装)开放端口2377 tcp端口, 7946 4789 tcp udp 端口本文使用192.168.99.101(hostname:centos-node4) 作为swarm manager192.168.99.102(host

failed to run cuBLAS routine cublasSgemm_v2 CUDA报错_幸福回头的博客-程序员秘密

在配置服务的过程中,安装好了CUDA9.0和cuDNN之后,想着把代码上传到服务器上进行训练一波测试下RTX 2080TI的速度,谁想到,竟然报了个错误,错误如下: failed to run cuBLAS routine cublasSgemm_v2 环境cuda9.0+tensorflow1.12.0 Ubuntu16.04 LTS 显卡 RTX 2080Ti 找了下原因: NVIDIA cuda 9.0自身的bug 解决方法安装cu...

【有源汇点上下界最大流】[ZOJ3229]Shoot the Bullet_outer_form的博客-程序员秘密

题目: 大意:有一个人,去给m个女孩儿拍照,第i个女孩至少拍Gi张,第k天最多拍Dk张,需要给Ck个女孩拍照,分别是Tk1, Tk2, …, TkCk,每个女孩至少Lki张,最多Rki张。做法:就像无源汇点上下界最大流那样连边,最后从T到S连一条下届为0,上届为+∞的边即可。#include<cstdio>#include<cstring>#include<algorithm>#define

树莓派GPIO gpio_function_wto882dim的博客-程序员秘密

gpio_function(channel)Shows the function of a GPIO channel.For example:import RPi.GPIO as GPIOGPIO.setmode(GPIO.BOARD)func = GPIO.gpio_function(pin)will return a value from:GPIO.IN, GPIO....

无root权限安装git-svn方法_DaSunWarman的博客-程序员秘密

tar -xvf git-2.9.4.tar.gzcd git-2.9.4/./configure help./configure --prefix=$HOME/usr/git-2.9.4make –j64make installvi ~/.profilePATH=$HOME/usr/git-2.9.4/bin:$PATHsource ~/.profile git –versiongit vers...

我的世界服务器物品管理,JEI物品管理器 _ 我的世界Minecraft中国版官方网站——你想玩的,这里都有..._玛娜的老公的博客-程序员秘密

在游戏中,记下纷繁复杂的合成表是一件比较困难的事情,而且很多模组的合成表也是异常的复杂,有没有什么办法来快速查询合成表呢?JEI物品管理器就能做到。安装了JEI物品管理器以后,每当我们打开物品栏或者工作台界面,都能看到侧面列出来了许许多多的物品方块。我们可以在下面的框中输入关键词,进行物品的搜索。比如我们输入一个关键词“活塞”。就可以看到,侧面栏目中列出乐活塞和粘性活塞这两个物品。将鼠标指针指向活...

推荐文章

热门文章

相关标签