代码改变世界

关于Redmine的安装的问题

2009-04-04 23:55  风中独火  阅读(2177)  评论(0编辑  收藏  举报
Redmine 是一款非常强大的项目管理工具,采用Ror进行开发,内置多语言的支持,最近为了对单位的新员工的日常工作进行管理和追踪,在服务器上安装了一套。

开始测试的时候,是采用InstanceRails的,基本上没有什么障碍,但是在生产环境下还是有些问题,最后决定才用Apache+Mongrel的方式,顺便也配置了两个Mongrel实例,用了一下Apache的负载均衡功能,把步骤写在这里算做备忘。

首先下载一系列的东东,Redmine的老家是http://www.redmine.org/,因为是Ruby写的,下载以后,你就什么都有了。

然后是安装Ruby。
从Ruby的老家(http://rubyforge.org/)下载One-Click Ruby install(http://rubyforge.org/projects/rubyinstaller/),运行安装程序,这样就安装好了ruby和rubygems,ruby 目前的版本是186-26
有了rubygems,就可以方便的安装以后的东西了,不过所有的操作都是命令行的,所以你最好习惯在Command下工作

如果服务器在网上,速度又不错的话,可以直接在线安装各种gem包,有点类似与unbuntu下的软件包的安装,直接用gem命令就可以了,当然如果在老家下载了相应的*.gem包也可以直接安装本地的版本,只是如果有依赖的话,麻烦一点,最好是有一些ruby的知识比较好。

在使用之前,建议将gem本身升级一下,使用gem update --system命令.gem 会升级到1.2.0

接着就是安装rails和mongrel,命令如下:

gem install rails -y  (安装好的版本是:2.1.0)

gem install mongrel -y (如果没有升级gem,会有选择,选择的时候,注意选择win32,不要选择ruby,否则会重新编译,这样需要有nmake)
gem install mongrel_service -y (这里可能会提示缺少win32-service,可以先用gem安装这个plugin,不过要指定版本,我开始的时候就是直接安装的,但是超过了mongrel_service需要的0.5.2到0.6.0之间,可以用-v参数指定一个安装的版本,mongrel_service 安装好以后,是0.3.4的版本)

安装好以后,就可以直接利用mongrel来作为ror的app server了。安装mongrel_service主要是为了将Mongrel作为服务来启动,当然也就是可以启动多个mongrel实例.

设置一个mongrel服务实例的命令如下:
mongrel_rails service::install -N redmine -c d:\rubysite\redmine -p 4000 –e production
-N后面是服务的名称,可以在管理工具的服务项目中找到
-c选项后面是ruby项目的网址,我这里是放在d盘的redmine
-p后面是端口
-e后面表示是生产模式来启动服务

这样mongrel的服务就部署好了.

接着要安装redmine本身,由于是ruby写的,这个也非常简单,首先在mysql中创建一个redmine的数据库.并建立相应的用户.然后进入redmine的config目录,修改database.yml,修改其中的数据库配置,因为我们只是使用这个系统,所以仅保留production的配置就行了.

接着就是要用rake来进行数据库的迁移,执行下面的命令:
rake db:migrate RAILS_ENV="production"
ruby开发的过程实际上就是不断迭代的过程,连数据库也是如此,通过使用migrate,就可以将数据库一步步的建立起来.这里也无非就是这样一个过程.

接着就是调用redmine的默认值,执行:
rake redmine:load_default_data RAILS_ENV="production"
有提示让我们选择语言,选择zh就好.

至此,整个系统就安装好了.

可以直接启动mongrel的服务,访问4000端口就可以使用redmine系统了.

当然,我还利用apache来配置一个负载均衡的服务器,其实就是用了Apache的反向代理功能,所有的配置都在http.conf中,具体配置如下.

首先启用如下模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_http_module modules/mod_proxy_http.so

接着配置一下Apache中的网站:
# ProxyRequests Off  
# <Proxy balancer://myCluster>  
#   BalancerMember http://localhost:4000/  
#   BalancerMember http://localhost:4001/ #这里只要再加一个Mongrel的实例就好了.  
# </Proxy>  
#  
# <VirtualHost *:80>  
#   ServerName 你的域名  
#   DocumentRoot d:/rubysite/redmine/public  
#   ProxyPass /images !  
#   ProxyPass /stylesheets !  
#   ProxyPass /javascripts !  
#   ProxyPass / balancer://myCluster/  
#   ProxyPassReverse / balancer://myCluster/  
#   ProxyPreserveHost on  
# </VirtualHost>

其实就是利用apache做一个反向代理,然后redmine中的images,css,js都不用mongrel来处理,直接由apache来处理就好了,毕竟静态的东西,apache更擅长一些