svn+apache搭建版本控制服务器
Centos7(linux)搭建版本控制服务器(svn+apache)
1.简介:
版本控制服务器:
版本控制(Revision control)是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。
SVN:
SVN(subversion)是版本管理工具,是CVS的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。
作为运维人员来说,安装和配置SVN服务器和客户端是必须要掌握的内容。
常见的版本控制:
Cvs:由于之前cvs编码的问题,现在大多数软件开发公司都使用SVN替代了cvs
Svn:集中式版本控制器
Git:分布式版本控制器
2.SVN服务器运行模式:
模式1:SVN服务器单独运行,监听端口:3690,访问方式:SVN : //ip
模式2:SVN服务器+Apache,监听端口:80,访问方式:http : //ip
3.安装:
安装SVN和Apache服务器,mod_dav_svn模块
Mod_dav_svn模块:apache http服务器的插件,可以让版本库通过http协议,在网站上展现
Yum install -y subversion httpd mod_dav_svn
创建版本库:mkdir /var/repos
项目仓库:svnadmin create /var/repos/mingdeng3000 (仓库名随便取)
svnadmin create /var/repos/nike (创建仓库 mingdeng3000 和 nike)
svn自带用户权限配置文件:在/var/repos/mingdeng3000/conf下的 authz , passwd , svnserve.conf文件
(由于我们用apache的,所以暂时不用svn自带)
4.启动SVN:
svnserve -d -r /var/repos/ (-d,指定svn后台运行;-r,指定svn的根目录或版本库)
查看是否启动:Ps aux | grep svn; netstat -atnpu | grep 3690;
5.查看Apache支持subversion的两个动态库有没有安装成功。
一般默认在/usr/lib64/httpd/modules下,有没有mod_dav_svn.so和mod_authz_svn.so模块
6.配置Apache通过mod_dav_svn模块访问到svn服务器。
编辑:Vim /etc/httpd/conf.d/subversion.conf(手写,默认7不存在,6存在此文件)(让apache支持svn)
写入的内容:
<Location /svn> #####注释####apache的虚拟目录,后面通过http://192.68.27.101/svn来访问mingdeng3000这个仓库
DAV svn
SVNParentPath /var/repos ###注释####存放我这mingdeng3000这个库的根目录
AuthType Basic
AuthName "SVN server of mingdeng3000! ###注释###apache认证时弹出的消息
AuthUserFile /home/svn/passwd #####注释####passwd文件存储用户名和密码
AuthzSVNAccessFile /home/svn/auth###注释###存放用户的权限
Require valid-user
</Location>
7.建立本地访问控制文件/home/svn/passwd,后期通过httpd服务器访问svn时,会使用这个文件中的用户信息验证用户和密码
mkdir /home/svn
htpasswd -c /home/svn/passwd mingdeng,用户:mingdeng密码123.123
htpasswd /home/svn/passwd john ,用户nike,密码321.321
8.创建用户权限管理文件:
vim /home/svn/auth
[/] #####注释####项目仓库根目录下,有2个仓库,mingdeng都有读写权限
mingdeng=rw
[nike:/] ########注释#####nike仓库目录下,用户john只对nike有读写权限
john=rw
修改版本库权限
Chown -R apache:apache /var/repos或者 chmod 777 /var/repos
9.启动apache:
systemctl start httpd.service
10.访问svn:
浏览器:http://ip/svn/仓库名
输入账号密码就行
第一次访问会显示版本0,因为没文件
11.下载并安装svn的Windows客户端:
http://tortoisesvn.net/about.zh.html 操作系统多少位就下载多少位的,安装完后,一定要重启电脑(先关闭虚拟机)
安装好后,新建一个文件夹svnclient,里面鼠标右键点击svn checkout,自动同步服务器svn
12.验证svn:
Windows客户端:拷贝几个文件到新建文件夹svn,没上传时文件上有“?”号标识符,右键点击svn commit上传文件到想去的库。
上传后黑色?就变成绿色对勾了。版本从0变为1了。
Linux客户端: svn checkout http://192.168.80.240/svn/mingdeng3000/
先输入当前Linux登录密码(我这是root),再输入svn账号密码。
登录完后,会自动下载仓库的文件,保存到当前路径下自动生成mingdeng3000/文件夹里(仓库nike同理)