如何在Windows上将Redmine运行在mongrel服务上

6
我使用Redmine在Mongrel上作为项目管理工具,并使用批处理文件(start-redmine.bat)启动mongrel中的redmine。我的设置有两个问题: 1. 我有一个正在运行的IIS服务器占用了HTTP端口(80) 2. 必须定期检查start-redmine.bat是否在由Windows更新服务引起的重新启动后停止。
对于第一个问题,我别无选择,只能在像3000这样的端口上运行mongrel;对于第二个问题,我必须创建一个Windows服务,在Windows启动时自动在后台运行;这就有麻烦了!
我至少知道三种运行redmine作为服务的方法;其中没有一种能满足性能方面的要求。你可以阅读关于它们的内容: 如何配置Rails应用程序(Redmine)在Windows上运行为服务? 我尝试了它们全部。设置这样的服务最简单的方法是使用mongrel_service方法;在3行命令中就可以完成。但是性能显著低于运行批处理文件...
现在,我想向您展示我的方法:

首先,假设我们已经将 Ruby 安装到 c:\ruby 目录下,并执行了命令 gem install mongrel 将 mongrel gem 安装到 c:\ruby\bin 目录下。
另外,假设我们已经将 Redmine 安装到类似 c:\redmine 的文件夹中,并且我们已经将 Ruby 的路径(即 c:\ruby\bin)添加到 PATH 环境变量中。

现在从微软网站下载并安装 Windows NT 资源工具包。 打开随资源工具包提供的命令行工具(从开始菜单中)。 使用 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 off
cd c:\redmine\
mongrel_rails start -a 0.0.0.0 -p 3000 -e production

现在我们需要配置之前创建的虚拟服务。从此处开始注意你所做的操作,否则可能会破坏你的Windows系统。要配置该服务,请打开Windows注册表编辑器(开始 -> 运行 -> regedit)并导航到此节点:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Redmine

右键单击“Redmine”节点并使用上下文菜单创建一个名为 Parameters (新建 -> 键)的新键。 右键单击“Parameters”并创建一个名为 Application 的字符串值属性。再次执行此操作,并创建另一个字符串值,称为 AppParameters 。 现在双击“Application”并将 cmd.exe 放入“Value data”部分。然后双击“AppParameters”并将 /C“C:\redmine\start-redmine.bat”放入Value data部分。
我们完成了! 发出此命令以将redmine作为服务在mongrel上运行:

net start Redmine

编辑: 如果您要使用Redmine的邮件服务,并且您有McAfee等反病毒软件,请确保告诉反病毒软件允许ruby发送电子邮件,否则您将无法使用邮件服务。

这里有问题吗?顺便问一下你用的是哪个版本的Ruby?你应该使用从rubyinstaller.org下载的版本。奇怪的是,mongrel_service速度较慢,我经常这样部署。我也使用thin进行部署,但mongrel_service作为服务更好用。 - nathanvda
毫无疑问,这是一篇如何指南,分享了我在搜索和思考3-4个小时后所学到的知识。我是一名.NET开发人员,对Ruby并不熟悉,最近被我的一个朋友安装了它,我认为他已经安装了可用的最新版本;但我的mongrel服务方法明显比mongrel_service方法快得多。总之,我想我会喜欢这个Ruby东西!它很好、很顺畅... - Achilles
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接