usvn mysql 密码_部署—USVN版本控制系统

部署—USVN版本控制系统

2019.10.26 运维工程师-李晨星

1. SVN介绍

SVN——Apache Subversion(集中式的版本控制系统)

Git与SVN比较:

SVN(Subversion)是集中式管理的版本控制器,而Git是分布式管理的版本控制器!这是两者之间最核心的区别。

SVN只有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。

Git每一个终端都是一个仓库,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。每一次的提取操作,实际上都是一次对代码仓库的完整备份。

1、集中式版本控制系统:

c78264a2295cedc23e5115d06c067a44.png

版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟,这还不得把人给憋死啊。

2、分布式版本控制系统:

8193655330b1d771d5e1e26906067566.png

首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

3、简单比较如下:

Git优点:(一台电脑即可以是客户端,也可以是服务器;工作过程中,可以断网)

适合分布式开发,强调个体;

公共服务器压力和数据量都不会太大;

速度快,灵活;

可以离线工作。

SVN优点:(一台的服务器控制很多客户端,使用过程中不能断网)

管理方便、逻辑明确;

集中式管理更能保证安全性;

适合开发人数不多的项目开发。

Subversion

每个版本库有唯一的URL(官方地址),每个用户都从这个地址获取代码和数据;

获取代码的更新,也只能连接到这个唯一的版本库,同步以取得最新数据;

提交必须有网络连接(非本地版本库);

提交需要授权,如果没有写权限,提交会失败;

提交并非每次都能够成功。如果有其他人先于你提交,会提示“改动基于过时的版本,先更新再提交”… 诸如此类;

冲突解决是一个提交速度的竞赛:手快者,先提交,平安无事;手慢者,后提交,可能遇到麻烦的冲突解决。

好处:每个人都可以一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限。

缺点:中央服务器的单点故障。

USVN

这是一个用PHP编写的Web界面,用于配置Subversion存储库。其目标是消除使用命令行界面创建新的SVN项目和用户的麻烦。

环境

[root@usvn www]# uname -a

Linux usvn 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

关闭selinux:

#执行命令

setsebool -P httpd_can_network_connect=1

#修改为disabled

vim /etc/selinux/config

SELINUX=disabled

2.安装部署

2.1 下载依赖包

yum install subversion httpd mod_dav_svn php php-mysql mysql-server mysql-devel perl-DBI perl-DBD-mysql mod_auth_mysql

php-5.4

php-mysql-5.4

httpd-2.4.6

subversion-1.7

mod_dav_svn-1.7

perl-DBI-1.627

2.2 启动httpd、mysqld服务

systemctl restart httpd mysqld

systemctl enable httpd mysqld

2.3 设置MySQL密码(usvn需要)

mysqladmin -u root password 123

2.4 配置svn

#将usvn软件包下载到指定目录并解压

cd /server/tools

wget https://github.com/usvn/usvn/archive/1.0.8.zip

unzip 1.0.8.zip

#移动到/var/www/html/下

mv usvn-1.0.8 /var/www/html/usvn

#将代码移动到apache的站点下

mv /var/www/html/usvn/src /var/www/html/

#修改为apache的权限

chown -R apache.apache /var/www/html/src/

#修改Apache配置文件

vim /etc/httpd/conf/httpd.conf

119 DocumentRoot "/var/www/html/src/public"

#追加配置

cat >> etc/httpd/conf/httpd.conf << EOF

Options +SymLinksIfOwnerMatch

AllowOverride all

Order allow,deny

Allow from all

EOF

#重启httpd

systemctl restart httpd

2.5 浏览器进行访问

4f2f87886c3ad267d7c9b8aa61e924b7.png

6596534483141359c1237ff953849e00.png

63de84fa27783a849163fe6c3e0daee3.png

f429f49b89bb49e570c0cebc7a01f3b7.png

2.6 mysql创建usvn库表信息

systemctl restart mysqld.service

create database usvn;

grant all on usvn.* to 'usvn'@'172.16.1.%' identified by '123';

grant all on usvn.* to 'usvn'@'localhost' identified by '123';

flush privileges;

d98d098a9ead76a3caabb128c09f0ca3.png

e1d82adae1cf3e3e7ef3bbdb2c5325a8.png

32bcf7b8f4238506d31744dda62ef9d0.png

2.7 添加配置到httpd.conf中

ErrorDocument 404 default

DAV svn

Require valid-user

SVNParentPath /var/www/html/src/files/svn

SVNListParentPath off

AuthType Basic

AuthName "USVN"

AuthUserFile /var/www/html/src/files/htpasswd

AuthzSVNAccessFile /var/www/html/src/files/authz

#重启apache

systemctl restart httpd

c7772e64c2c65c5fda6a6be3c2e07d46.png

2.8 默认目录说明

3ead67008e26d8588e2a05fac42cb869.png

2.9 代码上传目录

[root@usvn html]# ll /var/www/html/src/files/

total 8

-rw-r--r--. 1 apache apache 424 Oct 25 20:27 authz

-rw-r--r--. 1 apache apache 134 Oct 25 20:17 htpasswd

drwxr-xr-x. 3 apache apache 22 Oct 25 20:20 svn

2.9 svn账户密码配置目录

[root@usvn src]# ll /var/www/html/src/files/svn/DE_Robot/conf/

total 12

-rwx------. 1 apache apache 1080 Oct 25 20:20 authz

-rwx------. 1 apache apache 309 Oct 25 20:20 passwd

-rwx------. 1 apache apache 3090 Oct 25 20:20 svnserve.conf

#创建svn仓库目录

mkdir -p /var/www/html/src/files/svn/DE_Robot/

#初始化

svnadmin create /var/www/html/src/files/svn/DE_Robot/

#查看目录

ls /var/www/html/src/files/svn/DE_Robot/

conf db format hooks locks README.txt

#切入到conf目录中修改用户密码

cd /var/www/html/src/files/svn/DE_Robot/conf/

ls

authz passwd svnserve.conf

#修改主配置文件svnserve.conf ,将‘#’删除

[root@usvn conf]# egrep -v '#|^$' svnserve.conf

[general]

anon-access = none #匿名用户权限(无)

auth-access = write #认证用户(写)

password-db = passwd #数据库账号密码文件认证

authz-db = authz #角色的定义(每个用户能读哪个文件)

realm = /var/www/html/src/files/svn/DE_Robot #仓库的根目录地址

[sasl]

3ecd821d60be3bb1ad3373e81d4a2627.png

#添加用户

[root@usvn conf]# vim passwd

[users]

admin = 12345678

test = 12345678

#添加授权文件([/]代表svn的根目录)

[root@usvn conf]# vim authz

[/]

admin = rw

test = r

#对svn目录下的所有文件和子目录添加Users的读写权限

[root@usvn html]# chmod -R o+rw /var/www/html/src/files/svn/

#启动svn服务

[root@usvn conf]# svnserve -d -r /var/www/html/src/files/svn/DE_Robot/

[root@usvn conf]# netstat -lntup|grep svnserve

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

3. 安装SVN客户端访问存储库

026722eaf237cfb86d53efbeabf662f5.png

默认安装

7f81da594b9da17c6c7863989f70764f.png

选中命令行那个,然后勾选“will be installed on local hard drive”

1ca48a2b3e97d4a87f09791f608403df.png

3.1 安装完毕后点击鼠标右键即可看到

2f85c90c4ad0344772bd5883e6fc09e9.png

3.2 安装中文语言包

d37a292efa6b899ceceaa7e18928b13f.png

3.3 创建一个SVN的仓库目录并连接服务端

5a9cacd1b3cec84d136e6f1556d2d0c7.png

3263ad8fe04a04c4969b77a76dee42ef.png

f0dcc4f43a5d951af1257771ae9f1913.png

3.4 修改语言为中文

76f170ad4dfb890fde21a79106200e6c.png

120579307e351972189e47c113ce1762.png

3.5 上传代码并测试

95da7ac0feb0fd8100f6444c7939252f.png

8b0e1e5f4bdc616fed7d21d351dc282f.png

需要输入密码

admin

passwd

16042a923cc4bb439385699fc2456085.png

3.5 查看代码是否上传成功

[root@usvn DE_Robot]# pwd

/var/www/html/src/files/svn/DE_Robot

[root@usvn DE_Robot]# du -smh db

540Kdb

3f491f8a3933f935e79eff8075499a48.png

4cef1970df14336ea884603f6035586b.png

#再次查看服务端的容量大小

[root@usvn DE_Robot]# du -smh db

674Mdb

3.6 svn的注意情况

每次提交之前必须要先更新

如果拉不下来,给本地文件修改名字后再拉

01b497ea0e7759a39a6531e7e6c0f770.png

4 从USVN上进行查看与下载

1c7962d758254107c6b7766661178c6f.png

fff51ff3023e41185bafdf044eff7804.png

9e90fb51834178c5fc71805cb5d27ec3.png

e8f54fab267d6abb0e00025056059cf0.png

负责为开发创建账号密码,然后进行局域网内的集中式的代码版本控制

技术支持文档:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值