您的位置:首页 > 运维架构 > Apache

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

2013-06-08 10:32 856 查看
本文从多个帖子整理修改而来,因此要谢谢他们。相关地址如下

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>

D*** 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版本库的提交修改权限,后面实验过了再补充。

通过整理本文,自己头脑中模糊的有疑问的地方突然间变得清晰,写一写文字梳理一下混乱的思路,再次感到很有帮助,也很令人高兴。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: