成长型公司,最近需要项目管理的软件,所以在windows的服务器上搭建了redmine,其中也遇到了两个坑,现记录下来。
Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统。并且支持多数据库,其实此类软件在linux下搭建更好,windows上坑会略多。
安装流程
先简单描述下安装流程。其实说白了redmine就是一个管理系统,也就是网站,在有相应的环境之下,只要部署到服务器上即可。
- 安装ruby和rails环境。
- 选择一个数据库,可以是mysql、sql server、PostgreSQL等。
- cmd配置,运行server就可以了。
首先需要安装ruby和数据库,这边就不详细说了,需要注意版本号和系统的架构。详细的安装流程可以看官方按安装文档,写的已经非常详细,基本没什么大的坑。
此处安装的版本
- RailsInstaller2.3
- mysql5.7.19
- redmine3.4
安装过程中遇到的error
数据库驱动加载失败。
failed to load libmysql.dll from
大致的错误入上图显示。这个错误是mysql的驱动和ruby的gem不匹配导致的。ruby的mysql2的gem包需要C的connector的。
在执行到bundle install --without development test rmagick
这一步时,自动安装的mysql2 gem包不可用,从而在执行bundle exec rake generate_secret_token
时,出现上述错误。所以我们需要删除原来的mysql2的gem包,重新安装。步骤如下:
- 删除原有的gem包,可能会有多个,选择全部删除
gem uninstall mysql2
- 下载mysql的Connector/C,地址如下。下载的时候选择zip包,注意,驱动的版本需要和ruby的版本一致,博主安装的是rubyInstaller,所以是32位的ruby,故下载的驱动也为32位的。同时,现在驱动的版本有两个,6.1.1和6.0.2。请下载6.0.2。下载完成后,解压到本地。
-
手动安装gem包,lib和include的路径为,解压后的路径。
gem install mysql2 --platform=ruby -- '--with-mysql-lib="D:\mysql-connector-c-6.1.11-win32\lib" --with-mysql-include="D:\mysql-connector-c-6.1.11-win32\include"'
-
再执行
bundle exec rake generate_secret_token
,没有错误,ok。
SSL验证失败
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed OpenSSL::SSL::SSLError)
这个是ssl的证书问题,导致无法下载gem包,解决方案如下:
- 下载ssl证书http://curl.haxx.se/ca/cacert.pem到本地。
- cmd中添加环境变量
set SSL_CERT_FILE=pem文件路径
。
参考文献
- Ruby MYSQL2 gem installation on windows 7
- Installing Redmine
- SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed on Mac
- SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed