【发布时间】:2011-02-16 10:19:22
【问题描述】:
我在 Mongrel 上使用 Redmine 作为项目经理,并使用批处理文件 (start-redmine.bat) 在 mongrel 中启动 redmine。 我的设置有两个问题: 1.我的服务器上有一个正在运行的IIS,占用了HTTP端口(80) 2. 必须定期检查start-redmine.bat 是否在windows update 服务导致重启后停止。
对于第一个问题,我别无选择,只能在 3000 之类的端口上运行 mongrel,对于第二个问题,我必须创建一个 windows 服务,该服务在 windows 启动时在后台自动运行;麻烦来了!
据我所知,至少有 3 种方式可以将 redmine 作为服务运行;他们都不能满足关于这个主题的性能观点。你可以阅读他们 how to configure a rails app (redmine) to run as a service on windows?
我都试过了。设置此类服务的最简单方法是使用 mongrel_service 方法;在 3 行命令中你就完成了。但性能明显低于运行该批处理文件...
现在,我想向您展示我的方法:
首先假设我们已经将 ruby 安装到 c:\ruby 并且我们已经发出命令 gem install mongrel 将 mongrel gem 安装到 c:\ruby\bin
另外,假设我们已经将 Redmine 安装到 c:\redmine 之类的文件夹中;我们的 PATH 环境变量中有 ruby 的路径(即 c:\ruby\bin)。
现在从微软网站下载并安装 Windows NT 资源工具包工具。 打开 Resource Kit 附带的命令行工具(从开始菜单)。 使用 instsrv 安装一个名为 Redmine 的虚拟服务,使用以下命令:
"[path-to-instsrv.exe]\instsrv" Redmine "[path-to-srvany.exe]\srvany.exe"
在我的情况下(这是默认情况)是这样的:
"C:\Program Files\Windows Resource Kits\Tools\instsrv" Redmine "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"
现在创建批处理文件。打开记事本并将这些说明粘贴到其中,然后将其保存为“c:\redmine\start-redmine.bat”
@echo 关闭
cd c:\redmine\
mongrel_rails start -a 0.0.0.0 -p 3000 -e 生产
现在我们需要配置我们之前创建的虚拟服务。 从这里开始注意您在做什么,否则您可能会损坏您的 WINDOWS。要配置该服务,请打开 Windows 注册表编辑器(开始 -> 运行 -> regedit)并导航到此节点:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Redmine
右键单击“Redmine”节点并使用上下文菜单,创建一个名为 Parameters 的新键(新建 -> 键) 右键单击“参数”并创建一个名为 Application 的字符串值属性。再次执行此操作并创建另一个名为 AppParameters 的字符串值。 现在双击“应用程序”并将 cmd.exe 放入“值数据”部分。然后双击“AppParameters”,将/C "C:\redmine\start-redmine.bat"放入Value data部分。
我们完成了! 发出此命令以在 mongrel 上运行 redmine 作为服务:
开始Redmine
编辑: 如果您要使用 Redmine 的邮件服务并且您有像 McAfee 这样的防病毒软件,请确保您告诉防病毒软件允许 ruby 发送电子邮件,否则您将无法使邮件服务正常工作。
【问题讨论】:
-
这里有问题吗?顺便说一句,您使用的是什么 ruby 版本?您应该使用来自 rubyinstaller.org 的版本。奇怪的是 mongrel_service 更慢,我一直都是这样部署的。我也使用瘦部署,但 mongrel_service 作为服务更好地工作。
-
毫无疑问。这是一个 HowTo,分享我经过 3-4 小时的搜索和思考后学到的东西。我是一名 .Net 开发人员,我对 Ruby 不熟悉,我的一个朋友最近安装了它,我认为他有可用的最新版本;但是我对 mongrel 服务的方法比 mongrel_service 方法快得多。毕竟,我想我会喜欢这个红宝石的东西!又好又滑……
标签: windows ruby service mongrel redmine