CENTOS7使用SVN+apache搭建一个版本控制服务器
服务概述:
版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。
SVN(subversion)是版本管理工具,是CVS的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。作为一个运维人员安装和配置SVN服务器和客户端是必须要掌握的内容。
版本控制:
常见版本控制软件:
Cvs 由于之前CVS编码的问题,现在大多数软件开发公司都使用SVN替代了CVS
Svn 集中式版本控制器
git 分布式版本控制器
SVN服务器运行模式:
模式1:svn服务器单独运行 监听:3690端口 访问: svn://IP
模式2: svn 服务器+ apache : 80 端口 访问: http://IP
实战:搭建svn 服务器+apache 实现版本控制服务器
安装: svn服务器,apache, mod_dav_svn 软件包
运行机制:
实战:CENTOS7 上安装配置 svn server+apache
#安装svn服务器和 apache服务器, mod_dav_svn模块
# yum install subversion httpd mod_dav_svn -y
mod_dav_svn模块 : apache http 服务器的插件,可以让版本库通过http协议,在网站上展现。
创建版本库目录,并修改相应权限。
[[email protected] ~]# mkdir /var/repos
创建两个项目仓库。 xuegod.cn和svn2
[[email protected] ~]# svnadmin create /var/repos/xuegod.cn
[[email protected] ~]# svnadmin create /var/repos/svn2
[[email protected] ~]# ls /var/repos/xuegod.cn
conf db format hooks locks README.txt
[[email protected] conf]#ls /var/repos/xuegod.cn/conf
authz passwd svnserve.conf
#注:用户权限配置我们使用apache的,这里暂时不用svn自带
启动:SVN服务器
[[email protected] conf]# svnserve -d -r /var/repos/
-d表示以daemon方式(后台运行)运行
-r /var/repos指定svn根目录是/var/repos
[[email protected] 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/
[[email protected] conf]# netstat -antup | grep 3690
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 7262/svnserve
总结:svn服务器搭建
1、安装: yum install subversion httpd mod_dav_svn
2、创建仓库存储代码: svnadmin create /var/repos/xuegod.cn
3、启动svn服务器:svnserve -d -r /var/repos/
APACHE部分
第一步,查看apache支持subversion两个动态库有没有安装成功。
find / -name mod_dav_svn.so
/usr/lib64/httpd/modules/mod_dav_svn.so
find / -name mod_authz_svn.so
/usr/lib64/httpd/modules/mod_authz_svn.so
配置apache通过mod_dav_svn模块访问SVN服务器
[[email protected] ~]# 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时,会使用这个文件中的用户信息验证用户和密码。
[[email protected] ~]# mkdir /home/svn
[[email protected] ~]# htpasswd -c /home/svn/passwd tube
# -c create, 创建/home/svn/passwd文件。会提示你输入密码,默认是MD5加密
New password: 123456
Re-type new password:
Adding password for user tube
[[email protected] ~]# htpasswd /home/svn/passwd cd #后期再创建时,就不需要加-c参数,否则,会把之前添加到/home/svn/passwd中信息,全部覆盖。
New password: 123456
Re-type new password:123456
Adding password for user cd
查看用户名和密码:
[[email protected] ~]# cat /home/svn/passwd
cd:sjplr6rMtpN3E
tube:gZEcmDnMwFsMc
第四步,建立本地项目版本库,权限控制文件。
达到以下目标:
用户 仓库 权限
tube xuegod.cn,svn2 rw
cd xuegod.cn rw
[[email protected] ~]# vim /home/svn/auth #写入以下内容
[/]
tube = rw
[xuegod.cn:/]
cd = rw
解释:
[/] # 这个表示在所有仓库的根目录下
tube = rw # 表示tube用户对所有仓库根目录下的软件版本库有rw权限
[xuegod.cn:/] #这表示,仓库xuegod.cn的根目录下的访问权限
cd= rw # cd用户对xuegod.cn仓库具有读和写权限
给目录权限chown -R apache:apache /var/repos/
[[email protected] ~]# systemctl start httpd.service
svn的访问地址是: http://192.168.10.63/svn/xuegod.cn
1、创建配置文件:vim/etc/httpd/conf.d/subversion.conf 让apache可以支持svn
2、创建SVN用户和密码文件: /home/svn/passwd htpasswd
3、创建SVN权限管理文件:/home/svn/auth
SVN客户端使用说明
subversion windows客户端TortoiseSVN配置:
http://tortoisesvn.net/about.zh.html