2011-02-08 70 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

這種方式,我可以發展

相關問題