redmine mysql配置文件_CentOS下Redmine与SVN的整合——基于Apache和Mysql安全认证与读写控制...

概述

最近安装了redmine,一个灵活的项目管理系统,使用Ruby on Rails框架进行开发,跨平台且可以使用多种数据库(MySQL,PostgreSQL,SQLite)。然后安装了subversion版本控制系统,使用Apache的mod_auth_mysql模块为subversion做出认证以及验证,最后成功的将redmine与svn整合在一起,使用统一的用户进行读写权限的控制。

使用到的相关应用程序

CentOS 5.3平台

redmine-0.9.3

subversion 1.4.2

Apache 2.2.14

MySQL 5.0.77

安装redmine

提几个注意的地方:

在database.yml配置文件里面

production:

adapter: mysql

database: redmine

host: localhost

username: root

password: yourPassword

encoding: utf8

socket:  /var/lib/mysql/mysql.sock //跟自己的my.cnf一致

由于redmine-0.9.3只支持ruby 1.8.6或ruby 1.8.7的版本,yum 安装的是ruby 1.8.5, 所以需要编译源代码安装,下载地址:http://rubyonrails.org/download 在此之前,需要安装GCC编译器。

然后安装rubygems,解压后进入当前目录执行 ruby setup.rb

数据库使用mysql,首先需要安装mysql,mysql-server,mysql-devel,然后需要 gem install mysql,ruby-mysql-2.9.2

安装subversion

yum安装,非常方便

在安装完subversion后,在var/www/svn目录下创建一个repos版本库,作为测试所用。

然后编辑/etc/httpd/conf.d/subversion.conf配置文件,如下:

LoadModule dav_svn_module     modules/mod_dav_svn.so

DAV svn

SVNPath /var/www/svn

这样,你就可以通过Apache访问subversion版本库了,地址如下:http://yourIP/repos

使用Apache为subversion做出认证

首先需要下载Apache的mod_auth_mysql模块,在成功安装后重新启动Apache服务器会把该模块加载进来。

修改subversion.conf配置文件,如下:

LoadModule dav_svn_module     modules/mod_dav_svn.so

LoadModule authz_svn_module   modules/mod_authz_svn.so

LoadModule mysql_auth_module modules/mod_auth_mysql.so

DAV svn

SVNParentPath /var/www/svn

AuthType Basic

AuthName Subversion

AuthMySQLHost localhost

AuthMYSQLEnable on

AuthMySQLPwEncryption sha1 //用户密码的加密类型

AuthMySQLUser redmine

AuthMySQLPassword yourPassword

AuthMySQLDB redmine

AuthMySQLUserTable svn_user

AuthMySQLNameField user_name

AuthMySQLPasswordField user_passwd

AuthMySQLGroupTable svn_group

AuthMySQLGroupField user_group

Require valid-user

include /etc/httpd/conf.d/svn_htaccess/*.htaccess //导入控制所有版本库读写权限的配置文件

然后在针对redmine的数据库表创建两个视图

create view svn_user as SELECT users.login AS user_name, users.hashed_password AS user_passwd

FROM users

WHERE users.status =1

and users.type=’user’

create view svn_group as

select DISTINCT  users.login as user_name,concat(projects.identifier,"_",roles.name) as user_group from

users,roles,projects,members,member_roles where

users.status=1 and

users.type = ‘user’ and

users.id=members.user_id and

members.id= member_roles.member_id and

projects.id =members.project_id

经过以上配置文件的修改及数据库视图的创建,重新启动Apache服务器,即可以通过Apache进行svn的安全认证。

对特定版本库读写权限的控制

对每一个版本库创建添加一个访问控制文件,如在/etc/httpd/conf.d/svn_htaccess下的.htaccess文件,

Require valid-user//所有的合法用户有读的权限

Require group edu_Developer //只有edu_Developer组有读写权限

重新启动Apache服务器后,管理人员可以控制repos1版本库的读写访问权限。同理可以扩展到其他的版本库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值