2011-02-08 66 views
29

我是Rails的新手,所以请原谅我,如果这是显而易见的。运行Rails服务器的多个实例

我正在做很多试验,创建应用程序,测试功能等。它让我的第一个脚手架应用程序运行良好,但我想创建第二个应用程序来测试不同的功能。

我在我的电脑上备份了文件夹级别,运行$ rails new taskmaster(测试待办事项列表应用程序)。我运行了Task模型的脚手架,通过$ rails server启动了服务器,并试图加载http://localhost:3000

但我得到了路由错误,说它找不到"members"路由。但是members来自我的第一个Rails应用程序!我想通过在taskmaster目录中发起$ rails server来启动该应用程序的服务器。

如何告诉Rails服务器要提供哪个应用程序?

UPDATE

我发现,如果我:

  1. 回滚到新安装第一 Rails应用程序的,之前我创建的成员脚手架
  2. 火了导轨服务器通过$ rails server在应用程序的根目录中
  3. 检查http://localhost:3000

它仍然尝试去寻找members路由,因为我通过git回滚,所以不再存在。

我猜这意味着我的/usr/local/区域中有一些与我的Ruby和Rails初始安装相关的内容,主要包含此信息(我的应用程序安装在我的主目录的我的Documents文件夹中)。

我认为Rails应用程序本质上是自包含的应用程序内的目录 - 你只需要一个工作的Ruby安装让他们去。 Rails服务器是否位于每个应用程序目录中,还是适用于所有应用程序的总体Rails服务器?

回答

1

感谢您的帮助 - 原来,这是一个相当奇怪的发生。不知何故,我的整个项目文件夹被复制到垃圾箱中。当我启动服务器时,我正在垃圾箱副本中启动服务器实例,而我回滚并编辑的副本保留在同一位置。不知道这是怎么发生的(也许它涉及到我刚刚学习的另一个工具git)。无论如何,感谢所有的帮助,对不起,这真是太简单了!

46

我怀疑旧服务器仍在运行,新服务器无法启动。尝试先杀死它,然后启动它新的应用程序。

或者,你可以通过使用-p开关启动不同的端口上的新的服务器(例如rails server -p 3001

+0

这个工程在轨道3模拟两个领域对于相同的应用程序nd 3.1 – workdreamer 2011-12-23 10:44:52

+0

这很漂亮。现在我可以运行两个本地互相通信的应用程序 – JohnMerlino 2013-05-09 21:18:44

+12

我有一个应用程序在端口3000上运行,我需要在3001上启动另一个服务器。我运行了这个命令栏服务器-p 3001,但遇到了问题。 “服务器已在运行,请检查/home/chronus/projects/groups/tmp/pids/server.pid。” – 123 2014-01-21 11:15:39

9

你真的不能告诉要提供的应用程序的服务器,但你可以运行为每个服务器应用程序,并选择要加载哪一个。如果你想运行多个服务器,你必须在不同的端口启动它们。默认端口为3000。为了on Rails的启动在3001端口上的服务器,运行on Rails的3或script/server -p 3001rails s -p 3001 2.

+0

我在另一个端口(3001)上启动了它,尽管在我创建该路由/模型/脚手架之前回滚到“成员”路径,但仍尝试使用它(请参阅我的更新)。 – 2011-02-08 01:43:31

18

您可以通过为分配不同的端口号上运行本地主机的WEBrick服务器的多个实例:

rails s -p 3007 

但有时可能无法正常工作。

我有一个小费给你。你可以尝试使用这个以及webrick提供的其他选项。只需使用-P提供任何数量的PID尝试:

rails s -p 3007 -P 42342 
2

要启动轨道服务器,运行命令rails srails server 下列选项是有效的

-p Port 
-b Binding (ip address) 
-c Config file (for custom rack configuration) 
-d Daemonize server 
-u Enable debugger 
-e Change the environment (defaults to development) 
-P Specify a PID file 

所以运行一个实例,以不同的端口在本地机器上,使用以下命令

rails s -b 127.0.0.1 -p 8081 

请注意,您可以删除“127.0.0。 1“作为”localhost“是默认主机。

有关详细信息,检查该参考http://guides.rubyonrails.org/command_line.html#rails-server

1

在导轨5和Puma服务器,这是我可以实现这一点的方式:

有两个终端,每个终端运行rails server指定不同的PID的文件和不同的端口: enter image description here

这种方式,我可以发展