SVN的简介和工作原理
Subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linux和windows,但是普通应用在Linux上。
SVN主要是通过两种方式来工作:即是通过独立服务器和依赖Apache方式来工作。
SVN的作用体现如下方面
1、解决代码管理紊乱的问题。
2、解决代码冲突的问题。
3、解决代码拥有者对代码权限的控制。
4、.......
下面的例子主要是讲解SVN基于MySQL的认证。
系统环境:centos6.5 服务器IP:172.18.107.176
一、先安装相关的数据包
#yum -y install mysql mysql-devel mysql-server httpd mod_auth_mysql subversion mod_dav_svn
二、启动相关服务。
#service mysqld start #service httpd start
三、创建项目和相关授权
#mkdir -p /data/svn/ #svnadmin create /data/svn/test #创建一个名为test的项目 #vim /data/svn/authz #创建SVN认证文件 [groups] admin = eelly01,eelly02,test100 #添加SVN用户名 [test:/] #对test版本库进行权限设置 @admin = rw #允许admin这个组的成员对这个版本库有读写的权限
四、授予项目Apache的权限,否则无法通过http的方式来访问。
#chown -R apache.apache /data/svn/ #chmod 755 /data/svn/ -R
五、创建认证数据库
#mysql -uroot -p 1)创建数据库 mysql>create database svn_auth; mysql>use svn_auth; mysql>grant all privileges on *.* to svn@‘%‘identified by ‘123456‘with grant option; 2)创建表 mysql> CREATE TABLE users ( user_name CHAR(30) NOT NULL,user_passwd CHAR(20) NOT NULL,PRIMARY KEY (user_name)); 3)创建测试账号 mysql> insert into svn_auth.users values(‘test100‘,encrypt(‘123456‘)); mysql> insert into svn_auth.users values(‘eelly01‘,encrypt(‘123456‘)); mysql> insert into svn_auth.users values(‘eelly02‘,encrypt(‘123456‘));
六、Apache和SVN集成
#vim /etc/httpd/conf/httpd.conf #添加如下内容 <Location /svn> DAV svn SVNParentPath /data/svn/ #项目的父目录 AuthzSVNAccessFile /data/svn/authz #svn访问认证文件 AuthName "EELLY SUBVERSION" #认证名称 AuthType Basic #基本认证 AuthMYSQLEnable on #开启mysql认证 AuthMYSQLUser svn #数据库访问用户名 AuthMySQLPassword 123456 #数据库访问的密码 AuthMYSQLDB svn_auth #存放认证信息的数据库名称 AuthMYSQLUserTable users #存放认证信息的表名称 AuthMYSQLNameField user_name #存放认证用户名的字段名称 AuthMYSQLPasswordField user_passwd #存放认证密码的字段名称 Require valid-user </Location>
七、重启Apache服务器。
# service httpd restart 停止 httpd: [确定] 正在启动 httpd: [确定]
八、测试。访问http://172.18.107.176/svn/test
从上面看到在数据库里面创建test100这个用户是可以登录的。eelly01也是没有问题的。如下图。(当然里面是没有东西的了,因为是新建的版本库)
简单的SVN基于MySQL认证就这样搭建完成了,只需要在MySQL数据库里面创建一个用户,然后在authz文件里面授予用户相应的权限即可访问相应的版本库了。
本文出自 “运维,你好” 博客,请务必保留此出处http://denghaibin.blog.51cto.com/4128215/1554829