1、在服务器上安装配置SVN服务;

2、配置SVN服务同时支持Apache的http和svnserve独立服务器两种模式访问;

3、Apache的http和svnserve独立服务器两种模式使用相同的访问权限账号。

具体操作:

一、关闭SELINUX

vi /etc/selinux/config

#SELINUX=enforcing #注释掉

#SELINUXTYPE=targeted #注释掉

SELINUX=disabled #增加

:wq! #保存退出

setenforce 0 #使配置立即生效

二、开启防火墙端口

系统运维  www.osyunwei.com  温馨提醒:系统运维原创内容版权所有,转载请注明出处及原文链接

基于Apache的http模式,默认端口为80

基于svnserve的独立服务器模式,默认端口为3690

vi /etc/sysconfig/iptables #编辑防火墙配置文件

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

:wq! #保存退出

service iptables restart #最后重启防火墙使配置生效

三、安装Apache

yum install httpd apr apr-util httpd-devel #安装Apache

yum install mod_dav_svn mod_auth_mysql #安装基于Apache的http模式访问的支持模块

chkconfig httpd on #设置开机启动

service httpd start #启动Apache

httpd -version #查看Apache版本信息

cd /etc/httpd/modules/

#查看是否有mod_dav_svn.so和mod_authz_svn.so模块,如果有,说明mod_dav_svn安装成功!

#mod_auth_mysql模块是用数据库存储账号信息,本次教程没有涉及,可以不安装!

注意:如果Apache启动之后提示错误:

httpd:httpd: Could not reliably determine the server's fully qualif domain name, using ::1 for ServerName

解决办法:

vi /etc/httpd/conf/httpd.conf #编辑

ServerName www.example.com:80 #去掉前面的注释

:wq! #保存退出

四、安装SVN

yum install subversion #使用yum命令在线安装

svnserve --version #查看svn版本信息

五、配置SVN

1、创建svn版本库

mkdir -p /home/svn #创建svn版本库存放目录

cd /home/svn #进入目录

svnadmin create /home/svn/project1 #创建svn版本库project1

svnadmin create /home/svn/project2 #创建svn版本库project2

svnadmin create /home/svn/project3 #创建svn版本库project3

2、设置配置文件

mkdir -p /home/svn/conf #创建配置文件目录

cp /home/svn/project1/conf/passwd /home/svn/conf/passwd #拷贝账号密码配置文件模板

cp /home/svn/project1/conf/authz /home/svn/conf/authz #拷贝目录权限配置文件模板

cp /home/svn/project1/conf/passwd /home/svn/conf/svnserve.conf #拷贝全局配置文件模板

vi /home/svn/conf/passwd #编辑,添加以下代码

[users]

# harry = harryssecret

# sally = sallyssecret

osyunwei=123456

osyunwei1=123456

osyunwei2=123456

osyunwei3=123456

:wq! #保存退出

vi /home/svn/conf/authz #编辑,添加以下代码

[groups]

admin = osyunwei

project1 = osyunwei1

project2 = osyunwei2

project3 = osyunwei3

[/]

@admin = rw

* =

[project1:/]

@admin = rw

@project1 = rw

* =

[project2:/]

@admin = rw

@project2 = rw

* =

[project3:/]

@admin = rw

@project3 = rw

* =

:wq! #保存退出

vi /home/svn/conf/svnserve.conf #配置全局文件,在最后添加以下代码

[general]

anon-access=none #禁止匿名访问,设置为none。默认为read,参数:read,write,none

auth-access=write #授权用户写权限

password-db=/home/svn/conf/passwd #用户账号密码文件路径,可以写绝对路径

authz-db=/home/svn/conf/authz #访问控制权限文件路径,可以写绝对路径

realm=svn #每个SVN项目的认证命,会在认证提示里显示,建议写项目名称。

:wq! #保存退出

3、启动SVN

svnserve -d -r /home/svn --config-file /home/svn/conf/svnserve.conf --listen-port 3690

#--config-file后面跟全局配置参数文件

ps -ef|grep svn|grep -v grep #查看进程

netstat -ln |grep 3690 #检查端口

killall svnserve #关闭svn

4、设置svn服务开机启动

系统运维  www.osyunwei.com  温馨提醒:系统运维原创内容版权所有,转载请注明出处及原文链接

vi /etc/init.d/svn #编辑,添加以下代码

#!/bin/sh

# chkconfig: 2345 85 85

# processname: svn

svn_bin=/usr/local/svn/bin

svn_port=3690

svn_home=/home/svn

svn_config=/home/svn/conf/svnserve.conf

if [ ! -f "$svn_bin/svnserve" ]

then

echo "svnserver startup: cannot start"

exit

fi

case "$1" in

start)

echo "Starting svnserve..."

$svn_bin/svnserve -d -r $svn_home --config-file $svn_config --listen-port $svn_port

echo "Successfully!"

;;

stop)

echo "Stoping svnserve..."

killall svnserve

echo "Successfully!"

;;

restart)

$0 stop

$0 start

;;

*)

echo "Usage: svn { start | stop | restart } "

exit 1

esac

:wq! #保存退出

chmod +x /etc/init.d/svn #添加执行权限

chkconfig svn on #开机自启动

service svn start #启动

六、配置svn支持http访问

1、创建账号密码认证文件

htpasswd -cm /home/svn/conf/http_passwd osyunwei

htpasswd -m /home/svn/conf/http_passwd osyunwei1

htpasswd -m /home/svn/conf/http_passwd osyunwei2

htpasswd -m /home/svn/conf/http_passwd osyunwei3

根据提示输入2次密码即可。

注意:

/home/svn/conf/目录下面passwd文件是svnserve独立服务器使用的认证文件,密码没有加密,明文显示。

/home/svn/conf/目录下面http_passwd文件是Apache的http模式使用的认证文件,密码使用MD5加密。

passwd和http_passwd文件中,账号密码必须设置相同。

2、设置Apache配置文件

vi /etc/httpd/conf.d/subversion.conf #编辑,在最后添加以下代码

<Location /svn>

DAV svn

#SVNPath /home/svn

SVNParentPath /home/svn

# # Limit write permission to list of valid users.

# <LimitExcept GET PROPFIND OPTIONS REPORT>

# # Require SSL connection for password protection.

# # SSLRequireSSL

#

AuthType Basic

AuthName "Authorization SVN"

AuthzSVNAccessFile /home/svn/conf/authz

AuthUserFile /home/svn/conf/http_passwd

Require valid-user

# </LimitExcept>

</Location>

:wq! #保存退出

3、设置目录权限

chown apache:apache /home/svn -R #设置svn目录所有者为Apache服务运行账号apache

4、重启Apache服务

service httpd restart #重启

七、测试svn

Windows下安装svn客户端TortoiseSVN。

TortoiseSVN下载地址:http://tortoisesvn.net/downloads.html

安装完成之后,桌面-右键单击,选择TortoiseSVN-版本库浏览器

URL输入:svn://192.168.21.134/project1

用户名:osyunwei1

密码:123456

勾选:保存认证

确定

可以进入project1版本库目录,右键单击之后,可以选择创建文件夹等操作。

URL输入:http://192.168.21.134/svn/project1

用户名和密码跟上面一样,可以进入project1版本库目录,右键单击之后,可以选择创建文件夹等操作。

project1访问:

svn://192.168.21.134/project1

http://192.168.21.134/svn/project1

用户名:osyunwei1

密码:123456

project2访问:

svn://192.168.21.134/project2

http://192.168.21.134/svn/project2

用户名:osyunwei2

密码:123456

project3访问:

svn://192.168.21.134/project3 #svnserve独立服务器模式

http://192.168.21.134/svn/project3 #Apache的http模式

用户名:osyunwei3

密码:123456

扩展阅读:

1、Apache htpasswd命令选项参数说明

-c 创建一个加密文件

-n 不更新加密文件,只将apache htpasswd命令加密后的用户名密码显示在屏幕上

-m 默认apache htpassswd命令采用MD5算法对密码进行加密

-d apache htpassswd命令采用CRYPT算法对密码进行加密

-p apache htpassswd命令不对密码进行进行加密,即明文密码

-s apache htpassswd命令采用SHA算法对密码进行加密

-b 在apache htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码

-D 删除指定的用户

2、SVNPath 与 SVNParentPath区别:

SVNParentPath:支持多个相同父目录的SVN版本库。

SVNPath:只支持一个主目录的SVN版本库,如果在主目录下面建新项目,则提示无权访问。

至此,Linux下SVN服务器同时支持Apache的http和svnserve独立服务器两种模式且使用相同的访问权限账号教程完成。

=========下面是支持https访问的配置,在上面的基础上再继续操作即可===========

1.  https服务之前,通过查阅相关资料得知,需要通过申请创建服务器证书才可以正

常实现功能,所以需要使用yum命令安装申请证书所需要的软件包。

#yum  install  mod_ssl  openssl

2.  开始进行证书的申请工作

#cd  /etc/pki/tls/private

#openssl  genrsa  -out  ca.key  1024

#openssl  req  -new  -key  ca.key  -out  ca.csr

(以上两步为产生证书的私钥与

CSR)

#cd  /etc/pki/tls/certs

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

(为产生自我签署的金钥) (以上步骤必须在特定文件夹下产生所需的文件,保证输入命令正确,保证产生文件所在文件夹正确,否则后面将发生错误) 在执行上面3步过程中,会要求对你申请的证书进行基本的信息填写,按要求填写。

3. 修改apache ssl文件

#vi  /etc/httpd/conf.d/ssl.conf

进入文件,修改金钥以及金钥凭证正确路径(此路径即为上步生成的两个文件路径,必须保证路径的准确性),如下图

修改完成后保存退出,执行下面命令重启apache

#/etc/init.d/httpd  restart

4. 配置实现https的虚拟主机

#vi  /etc/httpd/conf/httpd.conf

进入文件后在文件的最后添加如下图所示内容后,保存退出。

注意:上图中所包含的文件路径需按照个人文件所在路径填写

5. 重启apache并查看https服务是否实现

#/etc/init.d/httpd  restart

验证过程如下:

在虚拟机的浏览器中输入https://localhost/svn/project1,浏览器会提示说你所登录的地址存在不安全因素,不用管它,直接添加信任(此时可以看到刚才申请的服务器证书),输入用户名与密码,登陆版本库。

也可以在命令行输入以下命令,查看是否配置成功

# svn  checkout

如果出现以下信息则证明配置成功

按照要求填写用户名与密码,连接版本库成功。

原文链接:

http://www.osyunwei.com/archives/9145.html

http://www.chinadmd.com/file/e6c6uerasausizxiwca6i6ai_3.html

本文转自 兴趣e族 51CTO博客,原文链接:http://blog.51cto.com/simplelife/1729931

Linux下SVN服务器同时支持Apache的http和https及svnserve独立服务器三种模式且使用相同的访问权限账号...相关推荐

  1. 虚拟服务器 端口管理,Apache服务配置虚拟主机(基于域名、端口、IP地址)与简单访问权限管理...

    虚拟Web主机 在同一台物理服务器中运行多个Web站点,其中每一一个站点并不独立占用一台真正的计算机. httpd支持的虚拟主机类型 基于域名的虚拟主机 基于IP地址的虚拟主机 基于端口的虚拟主机 构 ...

  2. Linux下SVN服务器支持Apache的http和svnserve独立服务器

    2019独角兽企业重金招聘Python工程师标准>>> 说明 服务器操作系统:CentOS 6.6 关闭防火墙,SElinux 实现 1.在服务器上安装配置SVN服务: 2.SVN服 ...

  3. Linux下svn服务器迁移

    Linux下svn服务器迁移 1.介绍迁移方式: 1.由于项目工作需要进行svn服务器的迁移,对此简要介绍svn服务器的迁移方案. 2.主要迁移方式: svnadmin dump svnadmin h ...

  4. Linux下SVN服务器的搭建

    Linux下SVN服务器的搭建 宗旨:技术的学习是有限的,分享的精神是无限的. 1.下载工具(下载地址:) subversion-1.6.1.tar.gz subversion-deps-1.6.1. ...

  5. linux下svn服务器搭建及使用

    文章目录 1. 安装svn客户端 2. 安装svn服务器 3. 在svn目录下创建版本库 4. 修改版本库配置文件 4.1 修改 authz 文件 4.2 设置密码 passwd 4.3 修改 svn ...

  6. linux下svn配置http访问

    linux 服务器部署svn+apache http + ssl https访问 一.其他链接 二.安装配置HTTP访问 2.1 安装Apache HTTP服务 2.2 安装svn模块 2.3 配置 ...

  7. 「SVN」Linux下svn使用命令

    原文链接:https://blog.csdn.net/return9/article/details/89042359 Window下SVN安装以及使用 TortoiseSVN下载:https://w ...

  8. linux下svn常用指令

    windows下的TortoiseSVN是资源管理器的一个插件,以覆盖图标表示文件状态,几乎所以命令都有图形界面支持,比较好用,这里就不多说.主要说说linux下svn的使用,因为linux下大部分的 ...

  9. [linux-svn] linux下svn常用指令

    From: http://www.cnblogs.com/aLittleBitCool/archive/2011/07/09/2101602.html windows下的TortoiseSVN是资源管 ...

最新文章

  1. 学习笔记84—[深度学习]神经网络反向传播(BackPropagation)
  2. CodeForces 651B
  3. orm java_Java 8 Friday:不再需要ORM
  4. Python Flask服务同时接收单个、多个上传的文件
  5. C#LeetCode刷题-多线程
  6. 炎热天气看书还是钓鱼?隐马尔科夫模型教你预测!
  7. 调用存储过程时报错:Illegal mix of collations
  8. linux高级网络编程教程
  9. solr suggest+autocomplete实现自动提示
  10. 关于SVN限制填写备注和自动更新代码到网站的研究
  11. halcon13永久破解dll,亲测可用
  12. CreateThread,_beginthread与AfxbeginThread之间的区别
  13. linux 使用rpm命令安装和卸载软件的使用方法
  14. 【FPGA】 基于FPGA分频,倍频设计实现
  15. 如何在Windows 10上不用鼠标使用文件资源管理器
  16. SpringBoot 文件上传 基于MD5 文件内容校验工具类
  17. 英语口语练习三十二之英文口语中生病时该如何陈述症状
  18. 全球与中国钠还原剂市场深度研究分析报告
  19. Android触摸事件实现笔触画布
  20. (前端)html与css css 18、清除浮动,溢出隐藏

热门文章

  1. 2020世界机器人大赛总决赛完美闭幕,MakeX挑战赛连续5年成为WRC官方合作赛项
  2. 10个 Python 程序员,9个不合格?
  3. LeetCode 滑动窗口(Sliding Window)类问题总结
  4. [洛谷P4722]【模板】最大流 加强版 / 预流推进
  5. Nginx的配置文件
  6. SylixOS ARP攻击解决办法
  7. 传统企业应用转型--从0到1的微服务之路
  8. 抓包和http请求工具
  9. 【杂谈】WebService是什么?
  10. #ifndef、#def、#endif宏