使用SVN+apache搭建一个版本控制服务器

服务概述:

SVN(subversion)是近年来崛起的版本管理工具,是CVS的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。作为一个运维人员安装和配置SVN服务器和客户端是必须要掌握的内容。

版本控制:

常见版本控制软件:

cvs

svn

git 分布式版本控制器

SVN服务器运行模式:

模式1:svn服务器单独运行  监听:3690端口    访问:svn://IP

模式2: svn 服务器+ apache   : 80 端口 访问: http://IP

实战:搭建svn 服务器+ apache 实现版本控制服务器

安装: svn服务器,apache, mod_dav_svn 软件包

运行机制:

 

实战:RHEL6 上安装配置 svn server+apache

#安装svn服务器和 apache服务器, mod_dav_svn模块

# yum install subversion  httpd mod_dav_svn -y

mod_dav_svn模块 :apache http服务器的插件,可以让版本库在通过http协议,在网站上展现。

 

创建版本库目录,并修改相应权限。

[root@xuegod63 ~]# mkdir /var/repos

 

创建两个项目仓库。 xuegod.cn和svn2

[root@xuegod63 ~]# svnadmin create/var/repos/xuegod.cn

[root@xuegod63 ~]# svnadmin create/var/repos/svn2

[root@xuegod63 ~]# ls /var/repos/xuegod.cn

conf db  format  hooks locks  README.txt

 

[root@xuegod63 conf]#ls /var/repos/xuegod.cn/conf

authz passwd  svnserve.conf

#注:用户权限配置我们使用apache的,这里暂时不用svn自带

启动:SVN服务器

[svn@xuegod63 conf]# svnserve -d -r/var/repos/

  -d表示以daemon方式(后台运行)运行

  -r /var/repos指定根目录是/var/repos

 

[svn@xuegod63 conf]# ps -axu | grep svn

Warning: bad syntax, perhaps a bogus '-'?See /usr/share/doc/procps-3.2.8/FAQ

root     6982  0.0  0.0 161476 1924 pts/2    S    18:09  0:00 su - svn

svn      6983  0.0  0.0 108392 1864 pts/2    S    18:09  0:00 -bash

svn      7262  0.0  0.0 182760 1056 ?        Ss   18:26  0:00 svnserve -d -r /var/repos/

[svn@xuegod63 conf]# netstat -antup | grep3690

(Not all processes could be identified,non-owned process info

 will not be shown, you would have to be rootto see it all.)

tcp       0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      7262/svnserve     

 

总结:svn服务器搭建

1、安装:  yum install subversion httpdmod_dav_svn

2、创建仓库存储代码: svnadmin create /var/repos/xuegod.cn

3、启动svn服务器:svnserve -d -r /var/repos/


APACHE部分

第一步,查看apache支持subversion两个动态库有没有安装成功。

 

查看:

[root@xuegod63 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

 

配置apache通过mod_dav_svn模块访问SVN服务器

[root@xuegod63 ~]# vim/etc/httpd/conf.d/subversion.conf

<Location /svn>

      DAV svn

      SVNParentPath /var/repos

       AuthType Basic

AuthName " SVN server of xuegod!"

   AuthUserFile /home/svn/passwd

       AuthzSVNAccessFile /home/svn/auth

       Require valid-user

</Location>

注释:

<Location /svn>   #apache的虚拟目录。后期通过链接:http://192.168.1.63/svn来访问两个仓库:xuegod和svn2

      DAV svn

      SVNParentPath /var/repos   #存放两个仓库:xuegod和svn2的真实目录

       AuthType Basic

        AuthName " SVN server of xuegod!"  #apache认证时弹出的消息

       AuthUserFile /home/svn/passwd   #passwd存储用户名和密码

       AuthzSVNAccessFile /home/svn/auth #存放用户的权限

       Require valid-user

</Location>

建立本地访问控制文件/home/svn/passwd,#后期通过httpd服务器访问svn时,会使用这个文件中的用户信息验证用户和密码。

 

[root@xuegod63 ~]# mkdir /home/svn

[root@xuegod63 ~]# htpasswd -c/home/svn/passwd tube   

# -c create, 创建/home/svn/passwd文件。会提示你输入密码,默认是MD5加密

New password: 123456

Re-type new password:

Adding password for user tube

 

第二次添加用户是否需要加-c 参数:  要1 : 不要:2

[root@xuegod63 ~]# htpasswd  /home/svn/passwd  mk   #后期再创建时,就不需要加-c参数,否则,会把之前添加到/home/svn/passwd中信息,全部覆盖。

New password: 123456

Re-type new password:123456

Adding password for user tree


查看用户名和密码:

[root@xuegod63 ~]# cat /home/svn/passwd

tree:sjplr6rMtpN3E

tube:gZEcmDnMwFsMc

注:tube和tree两个用户的明文密码都一样,但是加完密码以后是不一样。

加密时:  (密码+用户名 ) md5  -》  ll7IH3i5G0JfU

 

第四步,建立本地项目版本库,权限控制文件。

达到以下目标:

用户             仓库                  权限

tube           xuegod.cn,svn2    rw

tree             xuegod.cn            rw


[root@xuegod63 ~]# vim /home/svn/auth   #写入以下内容

[/]        

tube = rw   

[xuegod.cn:/]

tree = rw

解释:

[/]          这个表示在所有仓库的根目录下

tube = rw    表示tube用户对所有仓库根目录下的软件版本库有rm权限

[xuegod.cn:/]        #这表示,仓库xuegod.cn的根目录下的访问权限

tree = rw       # mk用户对xuegod.cn仓库具有读和写权限

给目录权限

[root@xuegod63 conf.d]# chmod  777 /var/repos/ -R

[root@xuegod63 ~]# service httpd restart

svn的访问地址是:      http://192.168.1.63/svn/xuegod.cn

总结:配置apache+svn

1、修改配置文件:vim /etc/httpd/conf.d/subversion.conf 让apache可以支持svn

2、创建SVN用户和密码文件:/home/svn/passwd

3、创建SVN权限管理文件:/home/svn/auth

 

SVN客户端使用说明

subversion windows客户端TortoiseSVN配置:

http://tortoisesvn.net/about.zh.html

注: 32位的软件只能安装在32位操作系统上。 我是64位,所以在安装在64上。

新一个文件夹:www.xuegod.cn

取出版本为0的源代码


上传代码:

随意保存一个网页,把网页源代码复制到目录www.xuegod.cn中,然后提交第一个网站代码:


在Linux下测试客户端:

[root@xuegod64 ~]# svn checkouthttp://192.168.1.63/svn/xuegod.cn www.xuegod.cn

。。。

A   www.xuegod.cn/TortoiseSVN - About_files/project_users.htm

A   www.xuegod.cn/index.html

A   www.xuegod.cn/TortoiseSVN - About.htm

Checked out revision 2.

[root@xuegod64 ~]#

[root@xuegod64 ~]# cd www.xuegod.cn/

[root@xuegod64 www.xuegod.cn]# ls

index.html TortoiseSVN - About_files TortoiseSVN - About.htm

猜你喜欢

转载自blog.csdn.net/u012724167/article/details/74394683
今日推荐