设为首页 收藏本站
查看: 677|回复: 0

[经验分享] SVN基于MYSQL认证

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-11-4 08:26:44 | 显示全部楼层 |阅读模式
SVN的简介和工作原理
    Subversion(简称svn)是近几年崛起的版本管理软件,是cvs的接班人,目前绝大多数开源软件都使用svn作为代码版本管理软件。Subversion支持linux和windows,但是普通应用在Linux上。
SVN主要是通过两种方式来工作:即是通过独立服务器和依赖Apache方式来工作。
SVN的作用体现如下方面
1、解决代码管理紊乱的问题。
2、解决代码冲突的问题。
3、解决代码拥有者对代码权限的控制。

系统环境:CentOS release 6.5 (Final)
服务器IP:192.168.159.130

vi /etc/sysconfig/network

一、安装相关软件包
[iyunv@ccod ~]# yum -y install mysql mysql-devel mysql-server httpd mod_auth_mysql subversion mod_dav_svn
               #mod_auth_mysql  #实现Apache的MySQL认证
               #subversion      #SVN软件包
               #mod_dav_svn     #Subversion与Apache之间的接口,通过它,Apache就可以访问版本库,并且可以让客户端也使用HTTP的扩展协议WebDAV/DeltaV进行访问。

二、关闭和启动相关服务

#关闭防火墙和selinux,免得给实验造成不必要的错误
[iyunv@gupt-11 ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Unloading modules:                               [  OK  ]
[iyunv@gupt-11 ~]# setenforce 0
[iyunv@gupt-11 ~]# service mysqld start
#SVN是随着httpd服务启动而启动

[iyunv@gupt-11 ~]# service httpd start
Starting httpd: httpd: apr_sockaddr_info_get() failed for gupt-11
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
                                                           [  OK  ]

三、创建版本库和相关授权

#创建测试目录。         
[iyunv@gupt-11 ~]# mkdir -p /data/svn

#在提供的路径上创建一个新的空的版本库,如果提供的目录不存在,它会为你创建。
[iyunv@gupt-11 ~]# svnadmin create /data/svn/test

#SVN访问认证文件,这里添加一个组,这个组的成员对test项目有读写的权限。这里可以根据开发人员的需求授予项目相关的权限。
[iyunv@gupt-11 ~]# cat /data/svn/authz
[groups]
admin = dailele1,dailele2,php100
[test:/]
@admin = rw

四、授予项目Apache的权限
[iyunv@gupt-11 ~]# chown apache.apache /data/svn/ -R

[iyunv@gupt-11 ~]# chmod 755 /data/svn/ -R

五、配置认证数据库
[iyunv@gupt-11 ~]# mysql -uroot -p
mysql> create database svn_auth;
Query OK, 1 row affected (0.00 sec)
mysql> use svn_auth;
Database changed
mysql> grant all privileges on *.* to svn@'%' identified by '123456' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE users
    -> (
    ->   user_name CHAR(30) NOT NULL,
    ->   user_passwd CHAR(20) NOT NULL,
    ->   PRIMARY KEY (user_name)   
    -> );
Query OK, 0 rows affected (0.01 sec)

mysql> insert into svn_auth.users values('dailele1',encrypt('123456'));
Query OK, 1 row affected (0.00 sec)

mysql> insert into svn_auth.users values('dailele2',encrypt('123456'));
Query OK, 1 row affected (0.01 sec)

mysql> insert into svn_auth.users values('php100',encrypt('123456'));
Query OK, 1 row affected (0.00 sec)


六、Apache和SVN集成

[iyunv@gupt-11 ~]# vi /etc/httpd/conf/httpd.conf           

    DAV svn                              #开启DAV模块支持!
    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                   #表示只有认证的用户才能登陆



七、重启服务
[iyunv@gupt-11 ~]# service httpd restart

八、修改my.cnf
[iyunv@gupt-11 ~]# vi /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
skip_grant_tables

#启动mysql时不启动grant-tables授权表,不然会报错导致账号无法通过验证。
[error] [client 172.18.107.176] MySQL ERROR: Access denied for user 'svn'@'localhost' (using password: YES)

[iyunv@gupt-11 ~]# service mysqld restart
Stopping mysqld:                                           [  OK  ]
Starting mysqld:                                           [  OK  ]

九、测试

9.1、在客户端先在火狐浏览器上用dailele1这个用户登录test版本库。

wKioL1RXS-7A38uDAAig3EX-OQ0671.jpg

dailele用户是可以通过认证的,由于这个是新建的版本库,里面当然是空的了。
wKiom1RXS5DADAJ-AAIll5fxaAI372.jpg


   简单的SVN基于MySQL认证就这样搭建完成了,只需要在MySQL数据库里面创建一个用户,然后在authz文件里面授予用户相应的权限即可访问相应的版本库了。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-26991-1-1.html 上篇帖子: centos开机启动项设置命令:chkconfig 下篇帖子: SCSI硬盘设备到/dev/sd设备的映射关系 认证
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表