使用SVN+Apache 搭建一个版本控制服务器
–>
服务概述:
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion,简单来说SVN就是用于多个人共同开发同一个项目,共用资源的目的。SVN 版本控制系统, 在 2000 年由 CollabNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目。
常见版本控制软件:
Cvs 由于之前CVS编码的问题,现在大多数软件开发公司都使用SVN替代了CVS
Svn 集中式版本控制器
git 分布式版本控制器
SVN两种运行方式 ;
模式1:svn单独运行 监听: 3690端口 访问: svn://IP
模式2: svn + apache 监听: 80 端口 访问: http://IP #两种方式各有利弊,可以自行选择
SVN存储版本数据有2种方式:
BDB(一种事务安全型表类型) 和 FSFS (一种不需要数据库的存储系统)。
因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
repository(源代码库): 源代码统一存放的地方
Update (更新): 当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更
Checkout(提取): 当你手上没有源代码的时候,你需要从repository checkout一份
Commit(提交): 当你已经修改了代码,你就需要Commit到repository
运行机制;
=========================开始安装===============================
安装需要: svn服务器,apache, mod_dav_svn 软件包 ;
# mod_dav_svn模块 : apache http 服务器的插件,可以让版本库通过http协议,在网站上展现。
1, 查看系统基础环境 ;
[[email protected] ~]# cat /etc/redhat-release #查看系统版本信息
CentOS Linux release 7.4.1708 (Core)
[[email protected] ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 #查看系统网络配置信息
TYPE=Ethernet
DEVICE=eth0
ONBOOT=yes
IPADDR=IP
PREFIX=24 #简写掩码
GATEWAY=
DNS1=223.5.5.5
[[email protected] ~]#
2,安装svn服务 apache服务 和 mod_dav_svn 模块 ;
[[email protected] ~]# yum install subversion httpd mod_dav_svn -y
# mod_dav_svn模块 : apache http 服务器的插件,可以让版本库通过http协议,在网站上展现。
3,创建版本库目录,并修改相应权限 ;
[[email protected] ~]# mkdir /var/repos #创建版本库的目录为 repos
[[email protected] ~]# cd /var/
[[email protected] var]# ls
repos run spool tmp www yp
4,创建两个项目仓库 ; zhangsan.cn和svn2 # 仓库名称可自己定义
[[email protected] var]# svnadmin create /var/repos/zhangsan.cn
[[email protected] var]# svnadmin create /var/repos/svn2
[[email protected] var]# cd repos/ #进入到版本库目录下进行查看 ;
[[email protected] repos]# ls
svn2 zhangsan.cn
5,启动:SVN服务器 ;
[[email protected] repos]# svnserve -d -r /var/repos/
# -r /var/repos指定svn根目录是/var/repos
# -d表示以daemon方式(后台运行)运行
6, 查看运行状态 ;
[[email protected] repos]# ps -aux | grep svn
root 2040 0.0 0.1 162200 656 ? Ss 11:07 0:00 svnserve -d -r /var/repos/
root 2042 0.0 0.2 112676 984 pts/0 S+ 11:09 0:00 grep –color=auto svn
[[email protected] repos]#
[[email protected] repos]# netstat -antup |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 2040/svnserve
7,总结:svn服务器搭建 ;
1、安装: yum install subversion httpd mod_dav_svn
2、创建仓库存储代码: svnadmin create /var/repos/xuegod.cn
3、启动svn服务器:svnserve -d -r /var/repos/
++++++++++++++++++++++++++Apache 部分++++++++++++++++++++++++++++++
1,查看apache支持subversion两个动态库有没有安装成功 ;
[[email protected] repos]# find / -name mod_dav_svn.so
/usr/lib64/httpd/modules/mod_dav_svn.so
[[email protected] repos]# find / -name mod_authz_svn.so
/usr/lib64/httpd/modules/mod_authz_svn.so
2,配置apache通过mod_dav_svn 模块来访问SVN服务器 ;
<Location /svn>
DAV svn
SVNParentPath /var/repos
AuthType Basic
AuthName ” SVN server of zhangsan!”
AuthUserFile /home/svn/passwd
AuthzSVNAccessFile /home/svn/auth
Require valid-user
</Location>
注释:
<Location /svn>
DAV svn
SVNParentPath /var/repos #存放两个仓库:zhangsan和svn2的真实目录
AuthType Basic
AuthName ” SVN server of zhangsan!” #apache认证时弹出的消息
AuthUserFile /home/svn/passwd # passwd存储用户名和密码
AuthzSVNAccessFile /home/svn/auth #存放用户的权限
Require valid-user
</Location>
3,建立本地访问控制文件/home/svn/passwd,
#后期通过httpd服务器访问svn时,会使用这个文件中的用户信息验证用户和密码。
[[email protected] repos]# mkdir /home/svn
[[email protected] repos]# cd /home/svn/
[[email protected] svn]# htpasswd -c /home/svn/passwd tube
New password: #设置密码
Re-type new password: #重复
Adding password for user tube #用户是 tube
# -c create, 创建/home/svn/passwd文件。会提示你输入密码,默认是MD5加密
[[email protected] svn]# htpasswd /home/svn/passwd xz #在创建一个 xz 的用户
New password:
Re-type new password:
Adding password for user xz
#后期再创建时,就不需要加-c参数,否则,会把之前添加到/home/svn/passwd中信息,全部覆盖。
4,查看用户名和密码:
[[email protected] svn]# cat /home/svn/passwd
tube:$apr1$.5l2pZhy$.W6jXeibNvJdmymPOdG4p0
xz:$apr1$lxyrrYIY$9eZyOp.KnbpN.ez92Wzln/
5,建立本地项目版本库,权限控制文件。
达到以下目标:
用户 仓库 权限
tube zhangsan.cn,svn2 rw
xz zhangsan.cn rw
[[email protected] svn]# vim /home/svn/auth #编辑配置文件写入以下内容
[/]
tube = rw
[zhangsan.cn:/]
xz = rw
注释:
[/] # 表示在所有仓库的根目录下
tube = rw # 表示 tube 用户对所有仓库根目录下的软件版本库有rw权限
[zhangsan.cn:/] #表示,仓库zhangsan.cn 的根目录下的访问权限
xz= rw # xz用户对zhangsan.cn仓库具有读和写权限
6,给目录授权,并重启httpd ;
[[email protected] svn]# chown -R apache:apache /var/repos/
[[email protected] svn]# ll /var/repos/
总用量 0
drwxr-xr-x 6 apache apache 86 6月 15 11:00 svn2
drwxr-xr-x 6 apache apache 86 6月 15 10:59 zhangsan.cn
[[email protected] svn]# systemctl start httpd.service
7, 测试 ; SVN 的访问地址是: http://IP/svn/zhangsan.cn/
总结:配置Apache+SVN
1、创建配置文件:vim /etc/httpd/conf.d/subversion.conf 让apache可以支持svn
2、创建SVN用户和密码文件: /home/svn/passwd htpasswd
3、创建SVN权限管理文件:/home/svn/auth
+++++++++++++++++++++++++++SVN客户端使用说明+++++++++++++++++++++++++
http://tortoisesvn.net/about.zh.html #客户端下载地址
# 注: 下载 36 或者是 64 根据自己的操作系统来决定,我这里是安装的 64 ,
1,安装完成客户端后,鼠标右击
2, 点击 “OK” 会提示你输入用户名和密码 ;
3, 直接点击 “OK” 会在桌面直接生成一个 zhangsan 文件夹 ;
4,上传代码:
随意保存一个网页,把网页源代码复制到目录 zhangsan.cn中,然后提交第一个网站代码:
5,点击 commit ,选中之后 点击 “OK”
6, 查看一下
7,在Linux 上也查看一下 ;
[[email protected] svn]# svn checkout http://IP/svn/zhangsan.cn zhangsan.cn
认证领域: <http://10.0.0.15:80> SVN server of zhangsan!
“root”的密码:
认证领域: <http://10.0.0.15:80> SVN server of zhangsan!
用户名: tube
“tube”的密码:
———————————————————————–
注意! 你的密码,对于认证域:
<http://IP:80> SVN server of zhangsan!
只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。
你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
———————————————————————–
保存未加密的密码(yes/no)?no
A zhangsan.cn/new 2.html
取出版本 1。
[[email protected] svn]# ls
auth passwd zhangsan.cn
[[email protected] svn]# cd zhangsan.cn/
[[email protected] zhangsan.cn]# ls
new 2.html
[[email protected] zhangsan.cn]#
============================End================================
本文来源 互联网收集,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源,如您发现有涉嫌抄袭侵权的内容,请联系本站核实处理。