在windows下安装redmine及相关问题

转载注明出处,adousen的博客http://blog.csdn.net/adousen


redmine是一个ticket驱动项目管理工具,与trac等工具相比,它最大特色是可以在一个实例中同时管理多个项目。

安装和使用

  • 下载安装文件
    为了省去下载和配置的麻烦,没有选择redmine官方的安装文件,而是下载bitmami的一键安装包bitnami-redmine-2.6.0-1https://bitnami.com/stack/redmine,它的主要特色有:
    • 一键安装,无需配置数据库和初始化
    • 部署在apache上,更加灵活。
    • 集成了版本控制工具,git或subversion。
    • 将redmine注册为windows服务,可以自动启动。
    • 提供了一个简单的服务管理工具,方便启动和暂停服务。
    • 提供了一键卸载
  • 安装操作。根据项目情况,可以去掉以下组件:

    • 由于本机已经安装有mysql workbench,故不需要采用PhpMyAdmin的方式进行数据管理。因此,安装时去掉了PhpMyAdmin。
    • 由于项目打算采用git或mercury作为版本控制系统,因此去掉了Subversion。
  • 如果整个安装过程无异常,那么安装结束就已经启动了redmine,因此可以从http://localhost/redmine/访问。

安装过程中的问题

  • 问题1. 安装过程会提示端口3306被占用,原因是本机已经安装有mysql。因此,改为3305端口。
  • 问题2. 由于该版本的bitmami中的mysql安装脚本存在的BUG:scripts目录下的serviceinstall.bat中的有关安装Mysql服务的配置脚本处有一个不应该有的换行。因此,会导致"redmineMySQL" 的服务安装不成功。所以,后续的初始化等数据库相关操作等会报错。
    注:如果打算在本机上同时启动两个mysql服务,可以在mysql的scripts目录下找到serviceinstall.bat,修正这个BUG。当然这需要在安装报错之前。但是,对于没有经验的人来说,很难确保自己已经改对了,可以尝试复制下面的代码到serviceinstall.bat,并手动执行serviceinstall.bat INSTALL

(注意修改C:\Bitnami\redmine-2.6.0-1为你的安装路径):

@echo off
rem -- Check if argument is INSTALL or REMOVE
if not ""%1"" == ""INSTALL"" goto remove
"C:\Bitnami\redmine-2.6.0-1\mysql\bin\mysqld.exe" --install "redmineMySQL" --defaults-file="C:\Bitnami\redmine-2.6.0-1/mysql\my.ini"
net start "redmineMySQL" >NUL
goto end
:remove
rem -- STOP SERVICES BEFORE REMOVING
net stop "redmineMySQL" >NUL
"C:\Bitnami\redmine-2.6.0-1\mysql\bin\mysqld.exe" --remove "redmineMySQL"
:end
exit

实际上,安装出错可以让我们有了比较好的机会在本机原来的mysql上安装redmine数据库,虽然多了后续的手动配置。当然,成功安装后也可以参照下面的步骤将redmine的数据库改本机现有的数据库。

后续问题解决方案

  • 手动完成初始化3306端口的Mysql管理帐号及redmine数据库。
    出问题的原因:上面提到的Mysql服务安装不成功,以及C:\Bitnami\redmine-2.6.0-1\apps\redmine\scriptsredmineini.bat脚本未被执行(实际上安装程序都没有拷贝这个脚本至目录下)。这个脚本的内容如下(拷贝自已成功安装的机器):

    @echo off
    rem Populate databases and load default data
    CALL C:\Bitnami\REDMIN~1.0-1\scripts\setenv.bat
    cd C:\Bitnami\redmine-2.6.0-1/apps/redmine\htdocs
    cmd /C bundle install --local --without development test sqlite --binstubs --deployment
    C:\Bitnami\redmine-2.6.0-1/ruby\bin\ruby.exe bin\rake generate_secret_token
    C:\Bitnami\redmine-2.6.0-1/ruby\bin\ruby.exe bin\rake db:migrate RAILS_ENV="production"
    C:\Bitnami\redmine-2.6.0-1/ruby\bin\ruby.exe bin\rake redmine:load_default_data RAILS_ENV="production" < lng.txt

    我们这里采用的是以下步骤手动完成

    1. 创建redmine 数据库。连接至3306端口的Mysql,执行以下MySQL命令:
      create database redmine character set utf8;
      create user ‘bitnami‘@‘localhost‘ identified by ‘60760284c1‘;
      grant all privileges on bitnami_redmine.* to ‘bitnami‘@‘localhost‘;
      修改..\redmine-2.6.0-1\apps\redmine\htdocs\config\database.yml中的[production]的设置,并将port设为3306
    2. 初始化redmine 数据库结构
      将命令模式的当前目录切换至redmine的安装目录(我的是C:\Bitnami\redmine-2.6.0-1\apps\redmine\htdocs),执行命令:

      rake db:migrate RAILS_ENV="production"

      可能会报错:Could not find eventmachine-1.0.3 in any of the sources
      原因: ruby缺少依赖的gemfile。
      解决办法:执行bundle install解决版本依赖问题后,再执行:

      bundle exec rake db:migrate RAILS
    3. 配置redmine数据库
      继续在命令模式下执行如下命令,填充redmine数据库中关于默认配置的数据。执行过程中选择语言时输入"zh":

      bundle exec rake redmine:load_default_data RAILS_ENV="production"
    4. 执行下面的语句,创建session密锁:

      C:\Bitnami\redmine-2.6.0-1/ruby\bin\ruby.exe bin\rake generate_secret_token
  • 启动redmine。

    1. 启动windows服务redmineThin2。如果没有这个服务,执行以下命令。

      C:\Bitnami\redmine-2.6.0-1\apps\redmine\scripts\serviceinstall.bat INSTALL
      net start redmineThin2

      可以通过http://localhost:3002/redmine/查看是否启动成功。

    2. 修复apache的配置文件,使redmine可以从http://localhost/redmine/访问。
      出问题的原因:安装过程中发生异常,apache2的conf文件夹下bitmami中的bitnami-apps-vhosts.conf未正确配置。
      打开该文件输入:

      # Bitnami applications installed in a prefix URL
      Include "C:\Bitnami\redmine-2.6.0-1/apps/redmine/conf/httpd-prefix.conf"

完成以上修复后,redmine就可以正常的从http://localhost/redmine/访问了

总结

总体上讲,bitmami提供的一键安装包质量是非常高的。

参考

  1. redmine部署手册以及安装包
  2. 在Windows上安装Redmine

    在windows下安装redmine及相关问题

    上一篇:Poj2763Housewife Wind树链剖分


    下一篇:Delphi 设计模式:《HeadFirst设计模式》Delphi代码---工厂模式之抽象工厂[转]