2010-10-07 74 views
1

我想爲每個站點部署一個多站點Rails應用程序,併爲每個站點配置不同的視圖和公共文件夾。假設我們有www.foo.com和www.bar.com。在我的RAILS_ROOT目錄中,我有一個[sites]目錄,在[foo]和[bar]中有兩個文件夾,每個文件夾由[public]和[views]文件夾組成。Rails MultiSite應用程序+ nginx配置

我的nginx的配置必須是類似的東西:

server { 
     listen 80; 
     server_name www.foo.com; 
     root RAILS_ROOT/sites/bar/public; 
     passenger_enabled on; 
     rails_env development; 
} 


server { 
     listen 80; 
     server_name www.bar.com; 
     root RAILS_ROOT/sites/bar/public; 
     passenger_enabled on; 
     rails_env development; 
} 

我的問題是nginx的不能真正找到RAILS_ROOT因爲它預計公用文件夾RAILS_ROOT /公衆通常的層次結構。任何解決方案?

+0

RAILS_ROOT是Rails框架的一個變量。 Nginx無法看到它。 – hellvinz 2010-10-07 16:43:41

+0

你可以發佈錯誤等?這是nginx上Rails的標準部署;然而,如果你只有'公共'和'意見'文件夾(並沒有一個不尋常的fcgi),乘客可能無法啓動應用程序,因爲呃,它缺少噸。 ;) – mway 2010-10-07 22:00:02

+0

實際上問題在於nginx找不到應用程序的核心部分,因爲它位於比正常情況更多的2個父目錄中。通常我們有path/to/app/public,而我有path/to/app/sites/foo/public。我需要告訴nginx看看那裏找到核心rails應用程序。我怎樣才能做到這一點?? – Dimitris 2010-10-08 00:46:33

回答

0

當我引薦到RAILS_ROOT我不是說我使用它,而不是寫一個特定的路徑變.../.../