Redmine的安装、总结和心得

Posted on Posted in 经验分享
本人有幸在上海的一家医疗信息公司实习,只主要做测试,因为工作需要在网上找一种基于web的BUG管理软件,经过多方面的试用、比较、适合公司,等方方面面的选择后,我选择了redmine,请不要试图问我什么是redmine,不懂去百度。双休两天的在网上查找资料,mysql、阿帕奇、端口、DOS进入文件夹、配置电脑、发现问题、去解决、解决中发现问题、再解决… …,天天晚上的熬夜,就是想尽快将redmine实施在公司的服务器上,最终在周四成功在自己电脑上实施成功,周五半天在服务器上成功实施,下午半天是时间进行邮件的配置,修改端口和更改一些符合公司习惯的配置。
         小弟不才,能够在CSDN的这个大家庭中有一席之地,很是荣幸,以下是我当时安装redmine的详细过程,若中间有很简单的错误或很傻的方法、步骤和方式还望多多原谅。
一.安装:

1.       安装Redmine,注意版本的控制,如:redmine的版本是:1.3.2则相应的:Ruby 1.8.7、rails 2.3.14、rack 1.1.1;

2.       利用RailsInstaller一键式安装Ruby,Rails,Rake等一系列东西,单个去安装配置,相当容易出错,而且很繁琐;由于选择redmine-1.3.2,所以选择下载RailsInstaller-1.1.1.exe,安装railsinstaller的目的在于获得redmine所需要的支持ruby的各个组件。这时会自动在C盘下面生成一个Sites目录:

railsinstaller安装完成后会自动弹出一个dos窗口,命令符停留在“C:\Sites”下,关闭了dos窗口,重新通过运行cmd开启:

把redmine1.3.2整个文件夹复制到安装railsinstaller后所产生的sites目录下(该目录在C盘根目录),通过DOS进入redmine1.3.2目录下。

根据redmine的要求,rails需要2.3.14版本,运行以下命令安装rails2.3.14:

gem install rails -v=2.3.14

完成rails安装后,安装rack 1.1.1版本,这个是redmine 1.3.2所要求的。运行命令:

gem install rack -v=1.1.1

完成rack安装后,继续运行命令:

gem install -v=0.4.2 i18n

3.       安装MySQL:

双击mysql-5.5.9-win32.msi,进入如下画面:

继续点击next,进入下一个画面,如下:

Typical是指典型安装,Complete是完全安装,Custom自定义安装,我们选择自定义安装,点击next,如下画面:

点击下方“Change”更改安装目录。 在“MySQL Server(MySQL服务器)”上左键单击,选择“This feature,and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”,你也可以手动指定安装目录:

都更改好后,点击next记如下一个画面:

确认一下先前的设置,尤其是两个安装路径,如果有误,”Back”返回重做。确定后点击”Install”开始安装,安装完成后,出现如下画面:

继续点击next,进入下一步:

选中”Configure theMysql Server now(开始配置MYSQL)“前面的勾打上,点”Finish”结束软件的安装并启动mysql配置向导,进入如下画面:

继续点击next,如图:

这里是选择配置方式:

“DetailedConfiguration(手动精确配置)”

“StandardConfiguration(标准配置)”

选择“DetailedConfiguration”,点击next,进行详细配置:

第一步,选择服务器类型:

“DeveloperMachine(开发测试类,mysql 占用很少资源)”;

“ServerMachine(服务器类型,mysql占用较多资源)”;

“DedicatedMySQL Server Machine(专门的数据库服务器,mysql占用所有可用资源)”,我由于在自己电脑上所以选择选择第一个,点击next,继续:

第二步选择mysql数据库的用途:

“MultifunctionalDatabase(通用多功能型)”;

“TransactionalDatabase Only(服务器类型,专注于事务处理)”;

“Non-TransactionalDatabase Only(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional),

这里我选择”MultifunctionalDatabase”,按next继续:

第三步对InnoDBTablespace进行配置,就是为InnoDB 数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏,当然,对数据库做个备份就没问题了。使用默认位置就可以了,点击next继续:

第四步选择您的网站的一般mysql 访问量,同时连接的数目:

“DecisionSupport(DSS)/OLAP(20个左右)”;

“OnlineTransaction Processing(OLTP)(500个左右)”;

“ManualSetting(手动设置,自己输一个数)”,

由于我主要在自己机器上做开发测试用,我这里选”ManualSetting”,然后选填的是10个连接数,点击next,继续下一步配置:

第五步,是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问mysql 数据库了,如果启用,把前面的勾打上,Port Number(端口号):3306,”Add firewallexception for this port”是一个关于防火墙的设置,将监听端口加为windows防火墙例外,避免防火墙阻断。还有一项”Enable StrictMode(启用标准模式)”,如果选中MySQL就不会允许细小的语法错误。如果您还是个新手,我建议您取消标准模式以减少麻烦。但熟悉MySQL以后, 尽量使用标准模式,因为它可以降低有害数据进入数据库的可能性。都配置好后,点击next继续:

第六步,选择数据库编码,就是对mysql默认数据库编码进行设置,第一个是西文编码,第二个是多字节的通用utf8编码,第三个可以在 Character Set下拉框多种编码中进行自由选择,我们常使用的就是gbk、gb2312和utf8,需要注意的是如果要用原来数据库的数据,最好能确定原来数据库用的是什么编码,如果这里设置的编码和原来数据库数据的编码不一致,在使用的时候可能会出现乱码,点击 next继续配置:

第七步.由于我已经安装过,所以“Install setthe Windows options”项是灰色的。

选择是否将mysql 安装为windows服务,还可以指定Service Name(服务标识名称),是否将mysql的bin目录加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,”mysql.exe-uusername -ppassword;”就可以了,不用指出mysql.exe的完整地址,很方便),我这里全部打上了勾,Service Name不变,按”Next”继续:

第八步,设置服务器默认管理员密码 ,这里需要记住password,在通过DOS进入MySql时需要验证。“Enable rootaccess from remotemachines(是否允许root 用户在其它的机器上登陆,如果要安全,就不要勾上,如果要方便,就勾上它)”。最后一项“Create AnAnonymous Account(新建一个匿名用户,匿名用户可以连接数据库,不能操作数据,包括查询)”,一般就不用勾了,完成后,点击next继续:

确保你上面的设置无误后,点击Execute,是设置生效,如果有误,按Back返回检查。 在点击Execute后的过程中,有可能弹出如下弹窗:

不用担心,点下OK就可以了,这是因为你在前面选择了”Add firewallexception for this port”,而防火墙没有开启引起的,如果关闭防火墙和杀毒软件就不会出现,不过不会对配置造成影响。设置完成后,按”Finish”结束MySql5的安装与配置。

安装成功后应显示如下界面:

接下来需要创建MySql的库、用户、赋权,等。

a.      通过DOS进入MYSQL安装目录,输入正确的password:

b.      创建数据库,运行以下命令符:

createdatabase redmine character set utf8;

运行:

createdatabase redmine_development character set utf8;

运行:

createdatabase redmine_test character set utf8;

如下图:

c.      创建Redmine数据库的用户及密码,并赋予权限:(’’引号之间需修改为自己的用户名、服务器名、密码)

create user ‘redmine’@’localhost’identified by ‘password’;

无错误提示,则表示创建成功。

下面进行赋权操作:

grant allprivileges on redmine.* to ‘redmine’@’localhost’;

如果在创建过程中出现什么错误,可以使用下面命令删除用户:

drop user‘redmine’@’localhost’;

以上创建暂时结束。

以我自己电脑为例,将C:\Sites\redmine-1.3.2\config\database.yml.example复制后重命名为database.yml如下截图:

修改该文件(即:database.yml文件)中的“ production ”段的数据库配置。例如:

production:

adapter: mysql

database:redmine

host:localhost

username: root(这里填写你希望用来登录 MySQL 的用户名)

password:password (这里填写用户密码)

我自己电脑上的配置是:

production:

  adapter: mysql

  database: redmine

  host: localhost

  username: redmine

  password: chris

  encoding: utf8

回到上面的DOS界面,使用如下命令创建数据库结构:

rakedb:migrate RAILS_ENV=”production”

此处还有可能出现的错误如下:

a.      如果出现“Mysql::Error:The ‘InnoDB’ feature is disabled”错误,需要开启MySql数据库对InnoDB的支持,在你的mysql安装文件夹中打开my.ini文件,找到skip-innodb,改成#skip-innodb,然后重启mysql(注:可以通过MySQL命令show variableslike “have_%”;查看是否开启了InnoDB);

b.

如果出现了上图所示的错误,则需要修改redmine安装目录\config\environment.rb脚本。

打开environment.rb脚本后,在bootStrap和initialization之间添加如下语句:

#在bootStrap和initialization之间添加语句 –espie

ifGem::VERSION >= “1.3.6”

module Rails

classGemDependency

defrequirement

r = super

(r ==Gem::Requirement.default) ? nil : r

end

end

end

end

 

如上图所示,之后保存退出。

c.      我当时运行时提示错误:“!!! Thebundled mysql.rb driver has been removed from Rails 2.2. Please install themysql gem and try again: gem install mysql.rake aborted!no such file to load –mysql ”

解决方案是:运行命令符:gem installmysql。

从mysql的安装目录下找到libmysql.dll文件拷贝至ruby(ruby的安装目录在RailsInstaller的安装下,以我自己电脑为例:D:\ProgramFiles\Redmine\RailsInstaller\Ruby1.8.7)的bin目录下。这里特别要注意版本兼容问题,MySql版本是5.5与rails2.3.14不兼容,需要找一个老版本的libmysql.dll文件替换就可以了,这里需要将我Installsoftware文件夹中的“libmySQL.dll”文件复制到MySql安装目录中的lib文件夹下和Ruby安装目录\bin\目录下。

这一步若正常运行,会输出一下内容:

以上没有问题后,运行命令符:

rakeredmine:load_default_data RAILS_ENV=”production”

该命令将填充默认的配置数据。该命令运行过程中需要选择语言,输入zh( 简体中文),成功后如上图所示。如果没有成功,可能是上一步没有成功所导致的。

4.      最后,在DOS下进入redmine-1.3.2,通过以下命令符来启动:

ruby script/server webrick -e production

在这里可能提示没有session,可以输入rake generate_session_store来解决。

如下图,说明启动成功。

打开浏览器,输入:http://localhost:3000。账号,密码都是admin。登录后,进入帐号后,在 “我的账号”里设置语言为中文。

二.备注:

1.       局域网访问慢:

局域网访问Redmine速度慢的突出原因是webrick需要解析目标地址的主机,所以慢。网上比较流行的解决方案是:换一个web服务器,比如:mongrel

a.  在ruby的DOS环境下输入:                 gem install mongrel

b.  安装:gem installmongrel

启动:ruby script/servermongrel -e production –d

2.          修改Redmine端口号:

3.       配置邮件通知:

Redmin可以为一些操作提供邮件通知如主题改变,新增问题等,这样可以让开发人员及时知道变化。在使用此功能前需要先配置邮件服务器,将C:\Sites\redmine-1.3.2\config目录下的configuration.yml.example更名为configuration.yml,然后用文本编辑器打开此文件,将内容改为如下:

如果配置的是Gmail邮箱:

在Redmine根目录下面运行:

rubyscript/plugin installgit://github.com/collectiveidea/action_mailer_optional_tls.git

运行以上命令符后:

后面还需要修改,现尚还不清楚。

我采用的是163邮箱。

打开configuration.yml文件,找到:production:开头的地方,如下图:

“此处涉及到公司内容,已将图片删除”

输入上图中的代码,严重注意格式问题,包括空格。

测试是否配置成功:

打开Redmine >管理员登陆 > 管理 > 配置 > 邮件通知 >页面底部:发送测试邮件。将会发送邮件到你目前登陆的用户邮箱中。

可以在这个页面中进行邮件内容的配置,包括邮件头,邮件签名等。还可以在这个页面中选择需要发送邮件通知的动作。

异步发送邮件配置:

当delivery_method设置为:smtp时, 它的处理流程是这样的:

在触发邮件发生的事件发生后, 首先发送邮件, 直到邮件发送完毕, 页面才跳转. 这就是说在发送邮件的过程中, 页面一直处于等待状态.

那么有没有一种异步发送邮件机制呢? 在Redmien 0.9 之后, 可通过将delivery_method设置为:async_smtp, 这时发送邮件和页面跳转属于不同的线程, 当触发邮件的事件发生后, 发送邮件将会通过消息队列在后台执行, 而页面继续向下执行, 不用等到邮件发送完毕

4.       在redmine中,加入自己公司的logo标记

a.       修改“app/views/layouts/base.rhtml”文件

找到

 <h1><%= page_header_title%></h1>

将其注释掉

 <!–h1><%=page_header_title %></h1–>

增加如下代码

Html代码

<img src=”<%= Redmine::Utils.relative_url_root %>/images/easybiz.png” height=”45″ style=”top-margin: 15px; left-margin: 15px;”/>

其中 easybiz.png就是自己公司的图片文件,<%=Redmine::Utils.relative_url_root %>是获取redmine的安装目录

b.       将easybiz.png放到public\images目录下

注意图片的长度和宽度,宽度不要超过50,长度不要超过600.

c.        重启redmine即可

        以上多数图片是本人在安装过程中的真实截图,在安装mysql部分的图片是借用网上资源,若无意侵权或冒犯之处,还望作者尽快联系我,我便及时作出修改或撤销。

        回想当初花了整整7天时间去不要命的完成这件事时,总是很骄傲,时时刻刻提醒着自己,不能让他们任何人看不起我,所以我会很认真、用心的去做每一件事。

       最后写上一句一直陪伴鼓励我的话:“一份耕耘,一份收获”