13使用SVN+apache搭建一个版本控制服务器.docx
《13使用SVN+apache搭建一个版本控制服务器.docx》由会员分享,可在线阅读,更多相关《13使用SVN+apache搭建一个版本控制服务器.docx(14页珍藏版)》请在冰点文库上搜索。
13使用SVN+apache搭建一个版本控制服务器
今天讲的内容:
•实战:
使用SVN+apache搭建一个版本控制服务器
每天:
10:
00开始
晚上:
20:
00
服务端:
IP:
192.168.1.63
客户端:
IP:
192.168.1.64
服务概述:
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上安装配置svnserver+apache
#安装svn服务器和apache服务器,mod_dav_svn模块
#yuminstallsubversionhttpdmod_dav_svn-y
mod_dav_svn模块:
apachehttp服务器的插件,可以让版本库在通过http协议,在网站上展现。
创建版本库目录,并修改相应权限。
[root@xuegod63~]#mkdir/var/repos
创建两个项目仓库。
和svn2
[root@xuegod63~]#svnadmincreate/var/repos/
[root@xuegod63~]#svnadmincreate/var/repos/svn2
[root@xuegod63~]#ls/var/repos/
confdbformathookslocksREADME.txt
[root@xuegod63conf]#ls/var/repos/
authzpasswdsvnserve.conf
#注:
用户权限配置我们使用apache的,这里暂时不用svn自带
启动:
SVN服务器
[svn@xuegod63conf]#svnserve-d-r/var/repos/
-d表示以daemon方式(后台运行)运行
-r/var/repos指定根目录是/var/repos
[svn@xuegod63conf]#ps-axu|grepsvn
Warning:
badsyntax,perhapsabogus'-'?
See/usr/share/doc/procps-3.2.8/FAQ
root69820.00.01614761924pts/2S18:
090:
00su-svn
svn69830.00.01083921864pts/2S18:
090:
00-bash
svn72620.00.01827601056?
Ss18:
260:
00svnserve-d-r/var/repos/
[svn@xuegod63conf]#netstat-antup|grep3690
(Notallprocessescouldbeidentified,non-ownedprocessinfo
willnotbeshown,youwouldhavetoberoottoseeitall.)
tcp000.0.0.0:
36900.0.0.0:
*LISTEN7262/svnserve
总结:
svn服务器搭建
1、安装:
yuminstallsubversionhttpdmod_dav_svn
2、创建仓库存储代码:
svnadmincreate/var/repos/
3、启动svn服务器:
svnserve-d-r/var/repos/
APACHE部分
第一步,查看apache支持subversion两个动态库有没有安装成功。
查看:
[root@xuegod63conf]#vim/etc/httpd/conf.d/subversion.conf#看到下面配置文件中两个模块相关信息,说明安装成功。
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
配置apache通过mod_dav_svn模块访问SVN服务器
[root@xuegod63~]#vim/etc/httpd/conf.d/subversion.conf
DAVsvn
SVNParentPath/var/repos
AuthTypeBasic
AuthName"SVNserverofxuegod!
"
AuthUserFile/home/svn/passwd
AuthzSVNAccessFile/home/svn/auth
Requirevalid-user
注释:
#apache的虚拟目录。
后期通过链接:
http:
//192.168.1.63/svn来访问两个仓库:
xuegod和svn2
DAVsvn
SVNParentPath/var/repos#存放两个仓库:
xuegod和svn2的真实目录
AuthTypeBasic
AuthName"SVNserverofxuegod!
"#apache认证时弹出的消息
AuthUserFile/home/svn/passwd#passwd存储用户名和密码
AuthzSVNAccessFile/home/svn/auth#存放用户的权限
Requirevalid-user
建立本地访问控制文件/home/svn/passwd,#后期通过httpd服务器访问svn时,会使用这个文件中的用户信息验证用户和密码。
[root@xuegod63~]#mkdir/home/svn
[root@xuegod63~]#htpasswd-c/home/svn/passwdtube
#-ccreate,创建/home/svn/passwd文件。
会提示你输入密码,默认是MD5加密
Newpassword:
123456
Re-typenewpassword:
Addingpasswordforusertube
第二次添加用户是否需要加-c参数:
要1:
不要:
2
[root@xuegod63~]#htpasswd/home/svn/passwdtree#后期再创建时,就不需要加-c参数,否则,会把之前添加到/home/svn/passwd中信息,全部覆盖。
Newpassword:
123456
Re-typenewpassword:
123456
Addingpasswordforusertree
查看用户名和密码:
[root@xuegod63~]#cat/home/svn/passwd
tree:
sjplr6rMtpN3E
tube:
gZEcmDnMwFsMc
注:
tube和tree两个用户的明文密码都一样,但是加完密码以后是不一样。
加密时:
(密码+用户名)md5-》ll7IH3i5G0JfU
第四步,建立本地项目版本库,权限控制文件。
达到以下目标:
用户仓库权限
tube,svn2rw
treerw
[root@xuegod63~]#vim/home/svn/auth#写入以下内容
[/]
tube=rw
[:
/]
tree=rw
解释:
[/]#这个表示在所有仓库的根目录下
tube=rw#表示tube用户对所有仓库根目录下的软件版本库有rm权限
[:
/]#这表示,仓库的根目录下的访问权限
tree=rw#mk用户对仓库具有读和写权限
给目录权限
[root@xuegod63conf.d]#chmod777/var/repos/-R
[root@xuegod63~]#servicehttpdrestart
svn的访问地址是:
http:
//192.168.1.14/svn/
总结:
配置apache+svn
1、修改配置文件:
vim/etc/httpd/conf.d/subversion.conf让apache可以支持svn
2、创建SVN用户和密码文件:
/home/svn/passwd
3、创建SVN权限管理文件:
/home/svn/auth
SVN客户端使用说明
subversionwindows客户端TortoiseSVN配置:
注:
32位的软件只能安装在32位操作系统上。
我是64位,所以在安装在64上。
新一个文件夹:
取出版本为0的源代码:
上传代码:
随意保存一个网页,把网页源代码复制到目录中,然后提交第一个网站代码:
在Linux下测试客户端:
[root@xuegod64~]#svncheckouthttp:
//192.168.1.63/svn/
。
。
。
A-About_files/project_users.htm
A
A-About.htm
Checkedoutrevision2.
[root@xuegod64~]#
[root@xuegod64~]#cd
[root@xuegod64]#ls
index.htmlTortoiseSVN-About_filesTortoiseSVN-About.htm