CentOS SVN安装与布局

CentOS 7
下SVN的装置及基础配置介绍

环境:Ubuntu10.10
Virtualbox4.02
CentOS5.5
事先在Ubuntu
Server上安装过了SVN,这一次试着在CentOS上装装看,不是都说CentOS是服务器里最安定的版本吗
事先在装虚构机时不曾设置任何服务器,全体的劳动都从头起初
第一步:安装apache subversion yum install httpd
yum install  httpd-devel        //用于支付Apache模块
yum install  subversion
yum install  mod_dav_svn  
//Subversion与Apache之间的接口(通过它,Apache就足以访问版本库,能够让客户端也使用HTTP的扩张协议
WebDAV/DeltaV进行拜见)
yum install  mod_auth_mysql  
//这一项用于用户身份验证,在网络有材质说一般那个mod_auth_mysql没得配置访问权限的
唯有用户安装,建议不装,用htpasswd就足以,在这里小编从没装,笔者恐怕打算用htpasswd,或许下回会试试。
验证svn模块(mod_dav_svn)是或不是科学安装
ls /etc/httpd/modules | grep svn
系统提示: mod_authz_svn.so
mod_dav_svn.so
证实安装:
svn –version
展现如下评释正确安装
=========================================== svn,版本 1.4.2 (r22196)
   编译于 Aug 10 2009,18:00:04

一、实行境况
二、安装操作系统
三、安装SVN
四、基础配置
五、启动SVN
六、客户端访谈
七、常见难点排查

Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet
(http://www.Collab.Net/).

一、推行景况

可选用以下的档案仓库储存取 (RA) 模块:

CentOS 7操作系统(CentOS-7-x86_64-DVD-1503-01.iso)

* ra_dav : 通过WebDAV (DeltaV) 协议采访档案库的模块。
  – handles ‘http’ scheme
  – handles ‘https’ scheme
* ra_svn : 使用svn网络协议访谈档案库的模块。
  – handles ‘svn’ scheme
* ra_local : 访问本地球磁性盘的档案库模块。
  – handles ‘file’ scheme
============================================
其次步:创设SVN库和种类 mkdir /home/svn          //创建SVN库
svnadmin create /home/svn/projcet          //成立项目
其三步:增添组及组员权限 groupadd subversion    
//创造一个叫subversion的组为具有酒店所在的目录
usermod -G subversion -a apache   //将团结和Apache 用户步入组成员中
查看:more /etc/group | grep subversion
系统提醒:subversion:x:500:apache
第四步:修改项目权限

下载地址:http://ftp.riken.jp/Linux/centos/7/isos/x86\_64/

chgrp -R subversion /home/svn/project
chmod -R 777 /home/svn/project

二、安装操作系统

此间最佳依据本人的安全必要陈设相应的权限,小编那是考察碰着进而一贯给了777

软件选取(SOFTWARE SELECTION):

第五步:配置httpd 编辑httpd.conf
vim /etc/httpd/conf/httpd.conf
查阅有没有LoadModule
dav_svn_module
modules/mod_dav_svn.so这一行,若无就加多上为了使客户端能够因而Apache来访谈SVN档案库,Apache必要加载mod_dav_svn模块。假诺Apache是根据与预设目
录安装的,mod_dav_svn 模块应该会设置在 Apache 安装地方 (暗中认可路线是
/etc/httpd/) 的 modules
子目录内。同一时间在Apache的布局文件httpd.conf(默许路线为etc/httpd/conf/)中曾经应用
LoadModule指令加载了该模块(若无,手动增添)注意那一个命令必须出现在其余的
Subversion 相关指令从前。还要加载mod_authz_svn.so模块

**
例如:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
诚如的话apache2都己寻常加载了那多少个模块
启动httpd
/etc/init.d/httpd start
开采浏览器查看是不是能收看apache的页面(注意假如开了防火墙记得开放80端口)
第六步:配置SVN
编辑subversion.conf
vim /etc/httpd/conf.d/subversion.conf
按以下代码退换(栗红为修改的代码):
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
 
<Location /svn>
DAV 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 Realm”
AuthUserFile /home/svn/passwd
Require valid-user
#   </LimitExcept>
</Location>
第七步:创建用户
# htpasswd -c /home/svn/passwd test        
//第二遍增多用户选择参数“-c”以往再增添就绝不了
系统提醒:
New password:                        //输入新密码
Re-type new password:         //确认密码 
Adding password for user test
重启apache                                    
通过web页面访谈,弹出用户登入验证,访问成功
(注意开放防火墙的3690端口)
2011/2/15 15:22
=========
考查进程中出现的难题记录==============
配备完httpd.con后重启apach进度中提示出错
/etc/init.d/httpd restart
系统提醒:
启动 httpd:
[Mon Jan 31 18:45:03 2011] [warn] module dav_svn_module is already
loaded, skipping
[Mon Jan 31 18:45:03 2011] [warn] module authz_svn_module is
already loaded, skipping
[Mon Jan 31 18:45:03 2011] [warn] module dav_svn_module is already
loaded, skipping
[Mon Jan 31 18:45:03 2011] [warn] module authz_svn_module is
already loaded, skipping
*了拜谒不太对,提醒是模块己加载过,今后己是再度了,留心查了须臾间,在/etc/httpd
/conf.d/subversion.con内的确己富含了dav_svn_module和authz_svn_module那四个模块,作者是再次投入
了删除……,但自己在httpd.conf里的确尚未见到那多少个模块加载的话语,但提示说是己加载过,只可以也删除,重启日常,回到目录里去查看,在etc/httpd/conf.d/module/下的确是存在那八个模块,但httpd.conf里也着实是没看出己加载的说话,哪么到底在哪里加载了啊?2013-02-21

*

图片 1

打开web输入http://192.168.0.5/svn/projcet提示:
The requested URL /svn/project was not found on this server.
找不到服务,但apache的页面能够张开,应该是在/etc/httpd/conf.d/subversion.conf设置出错了,回头再查了须臾间开掘错是出在“<Location
/svn/projcet>”在这句里不应是指到项目,而是指到文件货仓就行了,应该是“<Location
/svn>”

三、安装SVN

打开web输入http://192.168.0.5/svn/projcet弹出了验证窗口,输入后没进入提示:
Forbidden
You don’t have permission to access /svn/project on this server.
应当是用户访谈文件货仓的权能难题,依旧化解一下放权力力的主题材料啊
关键缘由是:/home/svn/project目录对于svn用户(如:svnroot)未有权力,或许是因为用svnadmin
create时是以root运营的,所以,mod_dav_svn就未有相应权限等
修改了svn的权限:
chown -R test /home/svn/project
chgrp -R subversion /home/svn/project
chmod -R 777 /home/svn/project
再展开web,输入网站后直接踏向了花色目录,很苦恼,直接就进去了,验证跑哪里去了?二零一二-02-23
13:38
重启httpd后再步向,验证窗口弹出来了,也没有错步入了。二零一三-02-23
13:43

[root@localhost ~]# yum install subversion

展开web浏览器,输入用户名和密码,但老是要求表明,一回以往提示:
This server could not verify that you are authorized to access the
document requested. Either you supplied the wrong credentials (e.g., bad
password), or your browser doesn’t understand how to supply the
credentials required.
权限?密码错误?不容许是密码错误,再试试啊,新建用户后,再试的结果一律,鲜明是权力的题目了前几日烦了先告一段落吧     
贰零壹叁-02-22

翻开是还是不是安装安装成功

图片 2

[root@localhost ~]# svnserve –version

svnserve, version 1.7.14 (r1542130)

  compiled Jun  9 2014, 18:54:44

Copyright (C) 2013 The Apache Software Foundation.

This software consists of contributions made by many people; see the
NOTICE

file for more information.

Subversion is open source software, see http://subversion.apache.org/

The following repository back-end (FS) modules are available:

* fs_base : Module for working with a Berkeley DB repository.

* fs_fs : Module for working with a plain file (FSFS) repository.

Cyrus SASL authentication is available.

四、基础配置

创设叁个空文件夹,比方 svn,作为全体版本库的根目录

[root@localhost ~]# mkdir -p /svn/

进去svn目录,创立版本库,举例 repo

[root@localhost ~]# cd /svn/

[root@localhost svn]# svnadmin create –fs-type fsfs repo

# 查看repo目录文件

[root@localhost svn]# cd repo/

[root@localhost repo]# ls

conf  db  format  hooks  locks  README.txt

[root@localhost repo]# cd conf/

[root@localhost conf]# ls

authz  passwd  svnserve.conf

文件注明:

1、svnserve.conf文件

该文件用于调控svnserve守护进度(svnserve
daemon)的安排,以便访谈svn版本库。借使仅是透过http://或者file:URLs方式访问版本库,则与该文件配置不起作用。

[general]结点

anon-access(佚名访谈)和auth-access(认证访问)选项,分别用于调整未注脚用户和与认证用户对svn版本库的寻访,其可选值富含write,read,none,假设设置为none则无对版本库的读写访谈权限;设置为write则有可读可写权限;设置为read则唯有读权限。

password-db用于调整密码数据库文件的地点,除非钦点了贰个带符号‘/’
的门径,不然文件的岗位为涵盖该配置文件的相对路径,要是翻开了SASL,则该文件配置不起成效。

authz-db选项决定基于路线访谈调整的证实法规的岗位。除非内定了带‘/’的门径,不然该公文地方为含有该配置文件的周旋地点。如果不钦命authz-db,则未有基于路线的访谈调节。

realm 选项钦赐了版本库的认证域(authentication
realm)。如若四个本子库有同一的认认证域(authentication
realm),他们应该有同样的密码数据库,反之亦然。缺省的 realm为版本库的uuid

force-username-case
选项,在authz-db文件配置的平整下,让svnserve相比较用户名从前,规范化用户名大小写(case-normalize)。合法值有
lowser 转小写;upper转大写;none选择私下认可的,不开始展览高低写转化。

[sasl]结点

用于钦命是或不是为表明使用 CyrusSASL类库。暗中认可的false。假设svnserve不带CyrusSASL支持编写翻译的,那么该小节会被忽视。运维’svnserve
–version,查找如下行’Cyrus SASL authentication is
available.’则象征集和补充助。

该选用内定了想让SASL提供的安全品级,0代表加密,1代表仅集成检查,大于1的的值是和用于加密的实惠密匙长度相关的。
(e.g. 128 代表 128-bit加密). 默许值如下

# min-encryption = 0

# max-encryption = 256

2、password文件

该文件为svnserve密码文件实例,每行代表叁个svn用户账户

[users]

用户名1 = 用户密码1

用户名2 = 用户密码2

……

用户名n = 用户密码n

3、authz文件

该公文为svnserve认证实例文件,定义路线和版本库(可选)的表明

当中每一行记录恐怕代表

1)单个用户

2)定义的一组用户([groups]节点中定义的

3)定义的多个别称([aliases]节点中定义的

4)使用$authenticated token的具备认证用户

5)仅使用$anonymous token的佚名用户

6)*  任何人

[aliases]

偶然只略知一二是设置小名,不过实际是怎么定义的,不是很清楚,先不管呢

[groups]

自定义分组名1 = 用户1,用户2,……

自定义分组名2 = 用户3,用户4,……

……

自定义分组名n = 用户n1,用户n2,……

表达:用户名以内用匈牙利(Hungary)语逗号分隔

[repository_name:dir_path]

用户名1 = 权限1

用户名2 = 权限2

……

用户名n = 权限n

@自定义分组名1 = 权限1

@自定义分组名2 = 权限2

……

@自定义分组名n = 权限n

&别名1 = 权限1

&别名2 = 权限2

……

&别名n = 权限n

* = 权限

[dir_path]

用户名1 = 权限1

用户名2 = 权限2

……

用户名n = 权限n

@自定义分组名1 = 权限1

@自定义分组名2 = 权限2

……

@自定义分组名n = 权限n

&别名1 = 权限1

&别名2 = 权限2

……

&别名n = 权限n

* = 权限

说明:

1)
[repository_name:dir_path]意味着名称为repository_name的本子库的dir_path目录,比如
[repo:/]意味着repo版本的库的根目录

举例:

svn版本库目录结构为:/svn/repo,,个中/svn为有着版本库的根,repo为内部三个版本库名称,运行方式:svnserve
-d -r /svn/,

图片 3

那么能够如下设置

[repo:/] /代表 /svn/

[repo:/test1]

[repo:/test1/test2]

若是独有一个本子库,等效做法如下

[/]

[/test1]

[/test1/test2]

中间,test1,test2都以通过svn客户端创立的目录

3)
权限可为r、w、rw,分别表示只可读,只可写,可读可写,这里r、w、rw只针对dir_path最终层级的目录生效

例:

[repo:/test1/test2]

shouke = rw

那就是说svn:192.168.1.103/test1 举行拜见,会提示认证失败

4) 别称,用户名,自定义分组不分先后顺序

5) * = 权限,倘若无另外权力则不填写,直接 * = 
,这里,*代表除了内定的用户,自定义分组,外号之外的任哪个人

修改svnserve.conf配置

[root@localhost conf]# vim svnserve.conf

找到如下内容

[general]

……(略)

# anon-access = read

# auth-access = write

改成如下内容

[general]

……(略)

anon-access = none

auth-access = write

找到如下内容

#password-db = passwd

改成如下内容

password-db = password

找到如下内容

# authz-db = authz

改成如下内容

authz-db = authz

找到如下内容

[sasl]

……(略)

# use-sasl = true

改成如下内容

[sasl]

……(略)

use-sasl = true

新增svn用户

[root@localhost conf]# useradd shouke

[root@localhost conf]# passwd shouke

Changing password for user shouke.

New password:

BAD PASSWORD: The password is shorter than 8 characters

Retype new password:

passwd: all authentication tokens updated successfully.

[root@localhost conf]# vim passwd

注解:用户密码 123456

修改password配置文件

找到如下内容,

[users]

# harry = harryssecret

# sally = sallyssecret

在其下新扩展带背景观内容,如下

[users]

# harry = harryssecret

# sally = sallyssecret

shouke=123456

修改authz配置文件

[root@localhost conf]# vim authz

……(略)

找到如下内容

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

在其下增加产量一行内容,如下

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

group1 = shouke

找到如下内容

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

在其下增加产量内容,如下

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

[repo:/]

@group1 = rw

五、启动SVN

[root@localhost conf]# svnserve -d -r /svn/

评释:-d 表示以daemon的诀窍运转,-r dir_path
表示把dir_path当作版本库的根目录,比如/svn/repo,svn://192.168.1.103/repo,访问的就是/svn/repo

查看

[root@localhost conf]# netstat -antp | grep svn

tcp  00 0.0.0.0:36900.0.0.0:*  LISTEN    8474/svnserve 

证实:如上,私下认可端口为3690

六、客户端访问

测量检验客户端版本:TortoiseSVN-1.9.1.26747-win32-svn-1.9.1.1441852914.msi

图片 4

七、常见难题排查

1.Unable to connect to repository at url ‘svn://…’ No repositroy found
at snv://……,如下

图片 5 

申明:访问格局不对,

1)类似svnserve -d -r /svn/
情势(即钦点路径作为根目录)开启的svn服务,正确的拜候格局svn://192.168.1.103/repo
即svn://ip[:port]/repository_name

2)不点名路径作为版本库的跟目录里,svnserve -d
格局展开的svn服务,准确的拜谒方式svn://192.168.1.103/svn/repo
即svn://[:port]/path_of_repository

2、 please wait while the repository browser is initializing

表达:防火墙阻止了端口,化解措施(centos7下测量检验),开放端口

[root@localhost conf]# firewall-cmd –permanent –zone=public
–add-port=3690/tcp

success

[root@localhost conf]# firewall-cmd –reload

success

3、类似如下,指标Computer积极拒绝只怕

图片 6

说明:服务器svnserve未开启.

Ubuntu 14.04
下搭建SVN服务器 SVN:// 
http://www.linuxidc.com/Linux/2015-01/111956.htm

CentOS 7下安装iF.svnadmin达成Web格局管理SVN(源码安装) 
http://www.linuxidc.com/Linux/2016-08/134214.htm

CentOS 6.5部署Apache+SVN 
http://www.linuxidc.com/Linux/2013-12/94315.htm

Apache+SVN搭建SVN服务器
http://www.linuxidc.com/Linux/2013-03/81379.htm

Windows下SVN服务器搭建和平运动用 + 客户端重新安装密码
http://www.linuxidc.com/Linux/2013-05/85189p5.htm

CentOS 6.6搭建SVN服务器
http://www.linuxidc.com/Linux/2016-12/137864.htm

CentOS 7.2下Nginx+MySQL+PHP-FPM+SVN配置Walle自动化安排系统详解
http://www.linuxidc.com/Linux/2016-11/137703.htm

Subversion (SVN)
的事无巨细介绍
请点这里
Subversion (SVN)
的下载地址
请点这里

本文长久更新链接地址http://www.linuxidc.com/Linux/2016-12/138636.htm

图片 7

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图