Windows Server 2008下折腾Redmine之旅

Redmine是用Ruby实现的,是一个比较成熟的项目管理功能B/S软件。
因为是Ruby,所以Redmine比较适合架在linux服务器上,但是由于之前为了兼容.NET网站程序,弄了一台Windows服务器,就只能勉为其难的在Windows里面架设了。

之前从来没接触过Ruby,对其环境完全不懂,架设过程很是辛酸  (:<)

我是通过RailsInstall2.2.1(CSDN有下载)来架设Ruby环境的,机子上原来装了XAMPP1.8.3(里面的MySQL5.6)来,主要遇到的问题都是和MySQL有关的:

1.MySQL2的安装问题
2.MySQL数据库写入问题

下面来一个一个地进行阐述。

1.MySQL2的安装问题

bundle install –without development test rmagick

以下是执行结果:
checking for ruby/thread.h… no
checking for rb_thread_blocking_region()… yes
checking for rb_wait_for_single_fd()… yes
checking for rb_hash_dup()… yes
checking for rb_intern3()… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lm… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lz… no
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lsocket… no
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lnsl… no
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lmygcc… no
checking for mysql_query() in -lmysqlclient… no

…………

An error occurred while installing mysql2 (0.3.16), and Bundler cannot continue.

Make sure that gem install mysql2 -v '0.3.16' succeeds before bundling.

这个是mysql2没有安装好,我的是装的xampp,所以我要通过以下命令安装:

gem install mysql2 — –with-mysql-dir=d:\xampp\mysql

以下是执行结果:
Temporarily enhancing PATH to include DevKit…
Building native extensions.  This could take a while…
Successfully installed mysql2-0.3.16
1 gem installed
Installing ri documentation for mysql2-0.3.16…
Installing RDoc documentation for mysql2-0.3.16…

 

另外请注意:装完MySQL2,还需要把d:\xampp\mysql\bin\下的libmysql.dll拷贝到d:\railsinstaller\ruby1.9.3\bin下!

2.MySQL数据库写入问题

在装好MySql2后,执行下面的命令时又来问题了:

RAILS_ENV=production rake db:migrate

以下是执行结果:

  • — create_table(“attachments”, {:force=>true})
    > 0.1653s
    -
     create_table(“auth_sources”, {:force=>true})
    > 0.0147s
    -
     create_table(“custom_fields”, {:force=>true})
    > 0.0073s
    -
     create_table(“custom_fields_projects”, {:id=>false, :force=>true})
    > 0.0052s
    -
     create_table(“custom_fields_trackers”, {:id=>false, :force=>true})
    > 0.0054s
    -
     create_table(“custom_values”, {:force=>true})
    > 0.0060s
    -
     create_table(“documents”, {:force=>true})
    > 0.0053s
    -
     add_index(“documents”, [“project_id”], {:name=>”documents_project_id”})
    rake aborted!
    An error has occurred, all later migrations canceled:

Mysql2::Error: xxx: CREATE INDEX documents_project_id ON documents (project_id)d:/railsinstaller/ruby-1.9.3-p484/gems/activerecord-3.2.15/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:xxx

…………

这个问题相当纠结,我把 CREATE INDEX documents_project_id ON documents (project_id)放到phpmyadin里执行也是出错,我把所有的add_index注释掉,到后面INSERT INTO插入初始数据的时候又是出错:

1030 Got error -1 from storage engine

后面发现一篇文章说是MySQL里设置成不可写入了,不知道为什么会突然这样,真是有点纳闷。

具体设置是在d:\xampp\mysql\bin\my.ini约150行:
把innodb_force_recovery 设置为 0,然后重启MySQL再执行RAILS_ENV=production rake db:migrate即可

其他可以供参考的网址有:
Redmine官方
http://www.redmine.org/projects/redmine/wiki/RedmineInstall



郑重声明:
除特别声明为转载内容外,本站所有内容均为作者原创,谢绝任何单位和个人不经许可的复制和转播!
对于确有转载需要的,请先与作者联系,在获得允许后烦请在转载时保留文章出处。
本文出自Lupin's Blog:http://www.cnzui.com/archives/1176