<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:0; mso-generic-font-family:roman; mso-font-pitch:variable; mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:Verdana; panose-1:2 11 6 4 3 5 4 4 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:536871559 0 0 0 415 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:宋体; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; text-decoration:underline; text-underline:single;} a:visited, span.MsoHyperlinkFollowed {mso-style-noshow:yes; mso-style-priority:99; color:purple; mso-themecolor:followedhyperlink; text-decoration:underline; text-underline:single;} p {mso-style-priority:99; mso-margin-top-alt:auto; margin-right:0cm; mso-margin-bottom-alt:auto; margin-left:0cm; mso-pagination:widow-orphan; font-size:12.0pt; font-family:宋体; mso-bidi-font-family:宋体;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page WordSection1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.WordSection1 {page:WordSection1;} -->
步骤一:下载Redmine ,http://www.redmine.org/wiki/redmine/Download
步骤二:下载Ruby 1.8.7 。目前Redmine 的版本还不支持1.9 的Ruby.http://www.ruby-lang.org/en/downloads/
安装完毕后,设置环境变量。Path 中加入ruby 的安装目录/bin ,。例如C:/Ruby187/bin.
步骤三:安装Rails ,打开Ruby 的命令行,输入gem install rails -v=2.3.5 和gem install rack -v=1.01 自动安装,这个根据网速,时间不等。
步骤四: 安装mysql (mysql-essential-5.1.40-win32) 运行gem install mysql ,安装MySQL 的C 语言库,rails 2.3 以后已经将MySQL 的C 语言库移出,所以要另外安装。对于MySQL ,创建数据库。create database redmine character set utf8;
步骤五:解压下载的 Redmine( 例如解压后放到 c:) ,拷贝 config/database.yml.example 到 config/database.yml 里面,并编辑 production 环境对应的数据配置信息。如下:
production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: my_password
步骤六:在命令行进入到 redmine 的解压目录,运行命令 rake generate_session_store ,生成 Session 密钥。
步骤七:运行命令 rake db:migrate RAILS_ENV="production" 创建数据库。
Remark: 如果遇到问题错误,syntax error on line 14, col 2: ` encoding: utf8' ;这是因为password 前面要有一个空格。
如果出现:Mysql::Error: query: not connected: CREATE TABLE `schema_migrations` (`version` varchar(255) NOT NULL) ENGINE=InnoDB
这是因为MySQL 的版本不匹配的问题,使用低版本的MySQL 的libmySQL.dll( 下载地址 http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/ ) 将其保存到ruby 的bin 目录下面
步骤八: rake redmine:load_default_data RAILS_ENV="production" 该命令将填充默认的配置数据。该命令运行过程中需要选择语言,一般输入 zh ( 简体中文)
步骤九:由于默认的环境是使用的webrick 的服务器,性能很低。所以更换为mongrel 的服务器,运行如下命令
gem install mongrel
步骤十:命令行下,进入到redmine 安装目录,运行mongrel_rails start -e production 。
步骤十一:浏览器打开redmine ,地址如下
超级管理员 u:admin p:admin