设为首页 收藏本站
查看: 383|回复: 0

[经验分享] linux centos6.5下安装svn方法

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-3-23 09:19:54 | 显示全部楼层 |阅读模式
这几天一直在搭建svn,网上搜索了很多资料,没有一个是完整的,于是我就自己整理了一份安装手册,记录下来,第一是给自己做一个笔记,第二是给大家一个参考。

下面是简单的目录说明:

subversion目录说明:
*dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据
*db目录:就是所有版本控制的数据存放文件
*hooks目录:放置hook脚本文件的目录
*locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端
*format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
*conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)


系统环境
CentOS 6.5 桌面安装形式,(关闭iptables和selinux)


一,安装必须的软件包.
yum install subversion mysql-server httpd mod_dav_svn mod_perl sendmail wget gcc-c++ make unzip perl* ntsysv vim-enhanced
说明:
subversion (SVN服务器)
mysql-server (用于codestriker)
httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)
sendmail (用于配置用户提交代码后发邮件提醒)
wget gcc-c++ make unzip perl* (必备软件包)
ntsysv vim-enhanced (可选)

二,基本的SVN服务器配置
1,新建一个目录用于存储SVN所有文件
# mkdir /home/svn
2,新建一个版本仓库
# svnadmin create /home/svn/project
3,初始化版本仓库中的目录
# mkdir project project/server project/client project/test (建立临时目录)
# svn import project/ file:///home/svn/project -m “初始化SVN目录”
# rm -rf project (删除临时建立的目录)
4,添加用户
要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password”的条目就可以了。为了测试,我添加了如下内容:

[users]
# harry = harryssecret
# sally = sallyssecret
admin = 123456
huangyunping = 123456
hekaining = 123456
shunfeng = 123456
zhushengnan = 123456
gaozhe = 123456
luwenjun = 123456
fangwei = 123456
yefuhua = 123456
wangwei = 123456
chenwei = 123456
解释:上面是创建用户账户,不管上面的账号是哪个组,只要有登陆就必须在这个地方建好,分组是在
authz文件下控制。上文的admin账号,我是建一个最高权限的账号。姓名 = 密码

5,修改用户访问策略
/home/svn/project/conf/authz记录用户的访问策略,这个地方我纠结了几天,因为访问目录不同,但是你想通之后也就明白了。里面有很多#注释掉的费代码,都可以不看的,我这里直接贴有用的脚本。以下是参考:

[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
#组的访问权限
[groups]
project_admin = admin,wangwei
project_ui = huangyunping
project_app = hekaining
project_web = shunfeng,zhushengnan
project_jg = liuyuntao
project_yj = gaozhe,luwenjun
project_test = fangwei,yefuhua
project_products =chenwei

#各组的访问路径
[project:/]
@project_admin = rw
* =

[project:/ui]
@project_ui = rw
@project_admin = rw
* =

[project:/app]
@project_app = rw
@project_admin = rw
* =

[project:/web]
@project_web = rw
@project_admin = rw
* =

[project:/jiagou]
@project_jg = rw
@project_admin = rw
* =

[project:/yingjian]
@project_yj = rw
@project_admin = rw
* =

[project:/test]
@project_test = rw
@project_admin = rw
* =

[project:/products]
@project_products = rw
@project_admin = rw
* =

说明:
新建组名=组员,就是passwd里面新建的账号,上下有两部分,上部分是分组,下部分是设置组的访问路径。

[项目名,/限制该组访问的文件夹]
rw是读写权限,r是只读权限,每个组的最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!

6,修改svnserve.conf文件,让用户和策略配置升效.
svnserve.conf内容如下:

[general]
anon-access = none
auth-access = write
password-db = /home/svn/project/conf/passwd
authz-db = /home/svn/project/conf/authz




7,启动服务器
# svnserve -d -r /home/svn
注意:如果修改了svn配置,需要重启svn服务,步骤如下:

# ps -aux|grep svnserve
# kill -9 ID号
# svnserve -d -r /home/svn

(前几天遇到这个的一个错误,我新建两个项目,启动的时候是启动到下面一个项目路径,造成上一级项目的路径账号下的人员登录不上,最后原因是启动的目录一定要是上级目录,就是svn目录,svn下面的项目目录如果单独启动的话就会出问题,如果是两个以上的情况下。)
8,测试服务器
用svn客户端可以尝试测试,访问目录是:svn://192.168.8.18/project  账号可以用上面的admin 123456,确保访问的权限路径文件夹要有。如我的,看下图:


QQ截图20150323091925.png


至此,文件传输已经完成!

但是有的需要用http访问,可以继续这样操作

三,配置SVN服务器的HTTP支持

1,转换SVN服务器的密码
由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。我写了一个Perl脚本完成这个工作.
脚本内容如下:
# cd /home/svn/project/conf/
# vim PtoWP.pl
#!/usr/bin/perl
# write by huabo, 2009-11-20

use warnings;
use strict;

#open the svn passwd file
open (FILE, "passwd") or die ("Cannot open the passwd file!!!n");

#clear the apache passwd file
open (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!n");
close (OUT_FILE);

#begin
foreach (<FILE>) {
if($_ =~ m/^[^#].*=/) {
$_ =~ s/=//;
`htpasswd -b webpasswd $_`;
}
}



# chmod +x PtoWP.pl
# ./PtoWP.pl
Adding password for user pm
Adding password for user server_group
Adding password for user client_group
Adding password for user test_group
现在目录下会多一个webpasswd文件。


2,修改httpd.conf,添加关于SVN服务器的内容
编辑/etc/httpd/conf/httpd.conf,在最后添加如下信息:

<Location /project>
DAV svn
SVNPath /home/svn/project/
AuthType Basic
AuthName "svn for project"
AuthUserFile /home/svn/project/conf/webpasswd
AuthzSVNAccessFile /home/svn/project/conf/authz
Satisfy all
Require valid-user
</Location>



3,修改svn目录的属主为apache帐号:chown -R apache.apache /home/svn/project/
(注意:原文少了这一步,会出权限问题。)
4,重启Web服务器:
# /etc/init.d/httpd restart
Stopping httpd: [FAILED]
Starting httpd: [ OK ]

5,用浏览器访问http://192.168.8.18/project/
测试结果如下图所示:
QQ截图20150323091937.png
注意:这个地方输入账号密码会报错,解决方法我还在寻找找,估计是svn密码在http中不能识别,有高手的可以帮我解决下,谢谢!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-49638-1-1.html 上篇帖子: Debian安装scim中文、日语输入法 下篇帖子: centos 6.5 安装easy_install和pip linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表