Redmine(Ruby)配置经验
记录在配置Redmine邮件同步过程中遇到的各种问题与解决方法

1. 如何安装Redmine
http://www.redmine.org/projects/redmine/wiki/RedmineInstall

2. 如何配置自动邮件收取和定时同步
Windows下:http://www.redmine.org/projects/redmine/wiki/How_to_install_Redmine_in_Linux_Windows_and_OS_X_using_BitNami_Redmine_Stack
类Unix环境下:http://www.redmine.org/projects/redmine/wiki/RedmineReceivingEmails#Forwarding-emails-from-your-email-server
由于我主要是用Mac下配置的,下面主要为Mac下的命令。在其他操作系统下可能会略有不同
由于邮件服务器不是自己架设的,只能用imap或pop3同步的方法。
测试下来pop3同步QQ企业邮箱可能会有问题,于是采用了imap

3. Rake
自动收邮件的方法redmine:email:receive_imap需要rake来运行
关于什么是rake:
Rake中文介绍
http://hi.baidu.com/kenrome/item/0b178757da9c24948d12ed39
Rake官方文档
http://rake.rubyforge.org/

4. 运行rake的条件
运行rake首先要找到Rakefile所在的文件夹
对于BitNami的Redmine,安装目录在:/Applications/redmine-2.3.0-0/apps/redmine/htdocs

运行rake的时候如果遇到如下error:
rake aborted!
no such file to load - bundler/setup
说明bundle没装好

这时候就需要运行命令来安装bundle

5. 安装bundle
在Terminal里执行下列命令即可安装Bundle:
gem install bundler
bundle install
bundle exec rake db:create

如果要知道什么是bundle,可以查看链接:
http://guides.rubyonrails.org/getting_started.html#creating-a-new-rails-project
http://stackoverflow.com/questions/7454361/rubygems-do-not-install-on-os-x-lion

装Bundle的时候可能遇到各种Error
我遇到过的有:
1. Json错误,靠stackoverflow错误信息解决
2. 安装rmagick错误
rmagick是最头疼的一个错误,是由于rmagick 2.13.1版本的一个不兼容的问题导致。虽然2.13.2版本里修正了,但是bundle本身不能选择版本,只能自动安装2.13.1
修正方法:
http://stackoverflow.com/questions/13942443/error-installing-rmagick-on-mountain-lion/13960185#13960185
里面的路径可能会需要修改为/Users/<username>/.homebrew/Cellar/imagemagick/6.8.0-10/lib

运行bundle exec rake db:create可能也会遇到如下Error:
image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
解决方法:
http://stackoverflow.com/questions/8437455/rake-dbmigrate-mysql
简单的方法是:在运行所有Terminal方法前,运行一下:export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"
永久解决方法是修改 .bash_profile

6. 运行rake
Redmine测试账号
redmine.test@honestwalker.com
Password01!

如果要直接在Terminal里运行的话,先运行
cd /Applications/redmine-2.3.0-0/apps/redmine/htdocs
再运行
export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"
最后运行
bundle exec rake --silent redmine:email:receive_imap unknown_user=accept no_permission_check=1 RAILS_ENV="production" host=imap.exmail.qq.com port=993 username=redmine.test@honestwalker.com password=******* ssl=1 project=testproject1 tracker=Support
可能会报一些编码问题,不过可以无视
(SSL可能是必须的,之前不用SSL似乎没有正确收取)

7. 定时运行
类Unix系统下的定时运行是用cron
关于cron的介绍可参见:
cron定时任务(类Unix系统)中文介绍
http://www.blogjava.net/chenlb/archive/2008/07/02/212123.html
简单地说:
crontab -e是修改cron的任务
crontab -l是查看已创建的cron任务
crontab -r是删除所有cron任务

如果要用cron执行一句语法的范例可参见:
*/30 * * * * cd /Applications/redmine-2.3.0-0/apps/redmine/htdocs

由于cron下执行任务都只能执行一行,但实际需要执行三行,所以需要用osascript(Mac下的脚本)

8. osascript
osascript的语法类似:
osascript -e 'tell application "terminal"' -e 'do script "cd / cd /"' -e 'end tell'
分号可以用来间隔命令,在同一个Terminal窗口执行多个命令

所以最终的osascript命令为:
osascript -e 'tell application "terminal"' -e 'do script "cd /Applications/redmine-2.3.0-0/apps/redmine/htdocs;export DYLD_LIBRARY_PATH=\"/usr/local/mysql/lib:$DYLD_LIBRARY_PATH\";bundle exec rake --silent redmine:email:receive_imap unknown_user=accept no_permission_check=1 RAILS_ENV=\"production\" host=imap.exmail.qq.com port=993 username=redmine.test@honestwalker.com password=****** ssl=1 project=testproject1 tracker=Support"' -e 'end tell'

9. 结果
执行以下命令
*/30 * * * * osascript -e 'tell application "terminal"' -e 'do script "cd /Applications/redmine-2.3.0-0/apps/redmine/htdocs;export DYLD_LIBRARY_PATH=\"/usr/local/mysql/lib:$DYLD_LIBRARY_PATH\";bundle exec rake --silent redmine:email:receive_imap unknown_user=accept no_permission_check=1 RAILS_ENV=\"production\" host=imap.exmail.qq.com port=993 username=redmine.test@honestwalker.com password=****** ssl=1 project=testproject1
tracker=Support"' -e 'end tell'

Redmine(Ruby)配置经验的更多相关文章

  1. 项目管理软件---redmine安装配置

    redmine是一个开源的项目管理软件,其主页是:http://www.redmine.org redmine是基于Ruby on Rails框架的,跨平台和跨数据库. 安装过程 ========== ...

  2. 分享下使用 svn,测试服务器代码自动更新、线上服务器代码手动更新的配置经验

    分享下使用 svn,测试服务器代码自动更新.线上服务器代码手动更新的配置经验 利用SVN的POST-COMMIT钩子自动部署代码 Linux SVN 命令详解 Linux SVN 命令详解2 使用sv ...

  3. Ubuntu 下 redmine 安装配置

    安装 rvm \curl -L https://get.rvm.io | bash -s stable --ruby --autolibs=enable –auto-dotfiles 安装 Ruby ...

  4. Redmine email配置

    很简单,先安装sendmail apt-get install sendmail 然后在redmine目录的配置文件conf/configuration.yml中取消几行注释: # ==== Send ...

  5. windows使用ruby配置redis集群

    基本是从网上抄的.不过网上的东西不一定是完全正确的 我修正了一下 首先,资源有限,我就不搞什么主机从机了,我需要的集群实现内存的最大化 四台机器安装redis, 配置成服务, 打开6379端口,集群1 ...

  6. redmine邮件配置

    网上找了半天,有很多答案,最后自己测试找出一个解决办法. 1.找到安装位置 D:\Bitnami\redmine-2.5.2-2\apps\redmine\htdocs\config下的文件confi ...

  7. bitnami redmine svn配置

    采用bitnami 方案安装redmine svn服务器端会自己进行安装 1.创建版本库 首先进入remine安装目录的subversion/bin目录,例如我的安装目录是“/opt/redmine/ ...

  8. Redmine 邮件配置

    高版本号的Redmine是没有email.yml的.是和configuration.yml合并了.仅仅要配置configuration.yml即可了. 首先得说下Redmine的邮件,配置这个邮件,是 ...

  9. faplayer编译配置经验

    最近在做在线m3u8类格式的视频直播应用, 在获取m3u8的文件之后,如果采用Android系统播放器来播,会有各种各样的问题,容易卡死.不连续,也不能自定义一些选项.查找资料以后,决定采用fapla ...

随机推荐

  1. 光流和KLT

    一 光流 光流的概念是Gibson在1950年首先提出来的. 它是空间运动物体在观察成像平面上的像素运动的瞬时速度.是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存 ...

  2. 【Java】【jquery】ajax垃圾问题

    1.暗示HTML.JSP文件本身使用UTF-8格公式 2.HTML的head加: <META http-equiv="Content-Type" content=" ...

  3. ubuntu 14.04 安装搜狗拼音输入法

    原文:ubuntu 14.04 安装搜狗拼音输入法 ubuntu桌面系统下终于有了好用的拼音法-搜狗拼音输入法,欲在ubuntu 14.04下安装搜狗拼音输入法相当的简单. 先到搜狗拼音官网下载对应的 ...

  4. 第4章 建造者模式(Builder Pattern)

    原文 第4章 建造者模式(Builder Pattern) 定义 将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式. 实用范围 1 当创建复杂对象 ...

  5. clearfix:after 清除css浮动

    在写HTML代码的时候,发现在Firefox等符合W3C标准的浏览器中,如果有一个DIV作为外部容器,内部的DIV如果设置了float样式,则外部的容器DIV因为内部没有clear,导致不能被撑开.看 ...

  6. 无废话WCF入门教程二[WCF应用的通信过程]

    一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的 ...

  7. 从头开始学JavaScript (九)——执行环境和作用域

    原文:从头开始学JavaScript (九)--执行环境和作用域 一.执行环境:定义了变量或者函数有权访问的其他数据,决定了它们各自的行为.每个执行环境都有与之关联的变量对象. 变量对象:保存着环境中 ...

  8. Linux_修改创建文件夹时默认权限(修改为能上传)

    1:查看当前权限 umask 0022 意思就是权限为:777-022 =755 读 2:临时修改 umask 020 020 意思为:777-020=757 读写上传 3:永久修改 回到根目录 cd ...

  9. 【BZOJ3450】【Tyvj1952】Easy 可能DP

    联系: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...

  10. Java 测试并行编程(三)

    有很多其他的交替运行 因为在并行代码中的错误一般是低概率事件.因此,试运行并发差错时需要反复多次,但是,有很多方法可以提高发现这些错误的概率 ,在前面提到的,在多处理器系统.假设 线程的数量,那么 与 ...