虚拟机centos6.0搭建svn+apache服务器步骤总结

12 篇文章 0 订阅
5 篇文章 0 订阅

本文从多个帖子整理修改而来,因此要谢谢他们。相关地址如下

http://blog.csdn.net/tonysz126/article/details/7454528

http://jingyan.baidu.com/article/3d69c551ae10c3f0ce02d77c.html

下面一篇是更完整的博文

http://www.cnblogs.com/hicome/archive/2012/03/22/2411693.html


但是由于或者是只介绍centos上搭建svn服务器一个环节,或者是介绍流程完整但是本机实验没有成功。这里只是在本机初步测试成功供以后自己参考,并不能保证在其它人机器上没有问题。本机环境如下

主机操作系统windows xp sp3

虚拟机工具sun virtualbox 3.1.2

虚拟机操作系统centos 6.0桌面版

1,安装svn服务器

一、安装subversion
在这里我们使用yum来安装subversion,使用以下命令即可完成。

[root@localhost ~]# yum -y install subversion 

二、创建版本库

[root@localhost ~]# mkdir -p /home/svn/project01
[root@localhost ~]# svnadmin create /home/svn/project01 ):
初始化版本库,即导入文件到版本库中
svn import /home/software file:///svn/project/first --message "初始化版本"   

//将home文件夹的文件导入版本库  (不经过此初始化,后面检出时会提示没有版本库可供检出)

svn list --verbose file:///svn/project/first  //查看导入的文件

三、版本库管理配置

进行刚才创建的版本库目录下的conf目录,可以看到有三个文件。

[root@localhost ~]# cd /home/svn/project01/conf
[root@localhost conf]# ls
authz  passwd  svnserve.conf

svnserve.conf 这个是版本库的配置文件
passwd 这个是记录用户帐号密码的文件
authz 这个则是记录组、权限和身份验证的文件
1、配置svnserve.conf文件
这里需要设置以下几处
anon-access = none 指定匿名权限,默认为可读,现设置匿名无权限
auth-access = write 用户有写权限
password-db = passwd 账号密码文件的路径,psswd文件也可复制一份,命名为 passwd.conf 这样可以知道是配置文件,也可以放到其它目录下
authz-db = authz 同上
注意去掉#注释以后配置一定要顶格写,下同。

[root@localhost conf]# vi svnserve.conf
anon-access = none
auth-access = write
password-db = passwd //将指定svn客户端访问的用户名和密码。
authz-db = authz

2、配置passwd
该文件中记录svn用户名密码,以 (帐号 = 密码)或 (帐号 : 密码)的形式进行储存。
多用户之前用换行区分。这里配置了一个用户名为test1密码为123456的svn 账户。

[root@localhost conf]# vi passwd 
[users]
# harry = harryssecret
# sally = sallyssecret
test1 = 123456

3、authz文件的配置
[groups]表用于用户组的配置例如
“developers = test1,test2”这样就将这2个用户方在了developers组织之中。
建立组是为了方便给一组相同权限的用户分配权限。
[/] 指定是svn的根版本库
版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>

[root@localhost conf]# vi authz
[groups] 
admin = test1, test2    //用户组admin包含的成员
[/]
@admin=rw                         //用户组admin内成员拥有读写权限
* =

这样svn版本库就算配置完成了。

运行 svn, (停止SVN服务器命令为:killall svnserve )

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

以上svnserve命令执行后正常的话表明svn服务器已经启动。

经过以上步骤后,通过svn co svn://ip/svn检出操作会提示版本1的提示信息。

2,svn服务器搭配apache服务器

⑧安装svn客户端,就可以使用客户端通过如下的url就可以访问了:

   svn://IP地址/svn/project01

   2、借助apache服务器,通过web端访问svn:

   ①给apache服务器安装两个svn插件,这两个插件同样可以使用yum安装:    

yum install mod_dav_svn     //使subversion与dav模块通信的功能

yum install mod_authz_svn   //实现权限控制功能

   ②使用命令“httpd -M”可以查看是否加载这两个模块,如加载,则有加载模块中有如下两项:

.........

dav_svn_module (shared)

authz_svn_module (shared)

................

③编辑apache服务配置文件vi /etc/httpd/conf/httpd.conf,加入下面几行:

<Location /svn>

DAV svn

SVNParentPath /home/svn

AuthzSVNAccessFile /etc/httpd/conf.d/authz  //指定svn授权文件路径

//apache服务器读取的权限策略文件  

AuthType Basic

AuthName "Project"

AuthUserFile /etc/httpd/conf.d/passwdweb

//apache服务器读取的密码存储文件

Require valid-user

 ④编辑文件authz放在文件夹/etc/httpd/conf.d中,文件格式同文章上面的那个authz文件,

编辑文件passwd放在文件夹/etc/httpd/conf.d中,如下命令为生成第一个用户名和密码:

htpasswd -c /etc/httpd/conf.d/passwdweb test1

//命令为htpasswd,-c为参数,/etc/httpd/conf.d/passwdweb为创建密码保存文件路径,test1为用户名(并非用户组名)

然后重复输入你想设置的密码就可以自动存储在文件passwdweb中,默认为md5存储。

如再添加第二个用户就不加-c了,因为passtest文件已经存在了。

[root@localhost ~]#htpasswd /etc/httpd/conf.d/passwdweb test2

New password:

Re-type new password:

Adding password for user test2

重启apache服务,这时访问就需要用户验证了。

说明:此处的密码文件,将指定web访问需要的用户名密码。而passwd密码,将指定svn客户端访问的用户名和密码。

这时,在ie中输入ip:http://172.7.22.23/test将会要求输入密码,通过svn客户端也需要密码。

   ⑤重启apache服务,就可以在网页端使用刚才设置的用户名密码访问了,网址为http://192.168.2.100:8088/svn.

在第二步实施过程中,因为马虎大意将httpd.conf文件中<Location /svn>下AuthUserFile对应路径少写了一个子目录,导致svn认证机制不起作用。在修正路径错误重启svnserve和apche后,还遇到过用户名与密码始终无法通过的情况。然后就修改为当前密码文件路径,并使用htpasswd设置密码后就通过了。

还有几个注意事项:

1,为虚拟机centos指定与主机系统同一网段的静态ip地址

2,开放可供windows主机访问的svn端口3690和apache端口80

参考文章http://www.cnblogs.com/rockee/archive/2012/05/17/2506671.html

svn服务默认端口为3690,可以使用“netstat -ntlp|grep 3690”命令查看服务启动是否成功:
开放端口80(apache)和3690(svn)
#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT

#/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT

#/etc/rc.d/init.d/iptables save

查看端口状态
/etc/init.d/iptables status

3,创建专门维护svn的权限用户参考文章

http://www.360doc.com/content/11/0816/16/7102324_140814867.shtml

对于设置用户对svn版本库的提交修改权限,后面实验过了再补充。

通过整理本文,自己头脑中模糊的有疑问的地方突然间变得清晰,写一写文字梳理一下混乱的思路,再次感到很有帮助,也很令人高兴。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值