windows - Howto - 在 mongrel 上运行 Redmine 作为 Windows 上的服务

标签 windows ruby service mongrel redmine

作为项目经理,我在 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 Tools。 打开 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 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 的新 key (新建 -> key ) 右键单击“Parameters”并创建一个名为 Application 的字符串值属性。再次执行此操作并创建另一个名为 AppParameters 的字符串值。 现在双击“应用程序”并将cmd.exe 放入“数值数据”部分。然后双击“AppParameters”并将/C "C:\redmine\start-redmine.bat" 放入值数据部分。

我们完成了! 发出此命令以作为服务在 mongrel 上运行 redmine:

net start Redmine

编辑: 如果你要使用 Redmine 的邮件服务并且你有像 McAfee 这样的杀毒软件,请确保你告诉杀毒软件允许 ruby​​ 发送电子邮件,否则你将无法使用邮件服务。

最佳答案

感谢指导!顺便说一下,如果您运行的是 Windows 2008,请使用 mongrel 服务的预发布版本,否则它不适合您:

gem 安装 mongrel_service --prerelease

http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/1adf2a73c75c2884/38267c06198e282e?show_docid=38267c06198e282e

关于windows - Howto - 在 mongrel 上运行 Redmine 作为 Windows 上的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2781795/

相关文章:

c++ - wsprintf() 的安全版本?

c - malloc() 和 VirtualAlloc() 在 Windows 中分配内存时有哪些不同的属性?

python - 语法推理库?

java - 找不到依赖关系的合格 bean 类型

具有透明背景的 Java VLCJ Canvas 和绘图

c++ - 播放波形文件立即结束(C++,Windows)

ruby - 设置 :linked_files and set :linked_files for uploads in capistrano3

Ruby 方法链接中间值

android - 是否可以在 AIDL 接口(interface)中使用继承?

C# - 可移植类库 "XmlElement does not exist in the namespace System.XML"