2009-11-16 128 views
0

我第一次在我的Debian安裝mod_ruby事後問題(搞清楚,這是太慢了之後)我想chagne乘客爲我的Apache紅寶石:使用乘客

現在我有問題,該乘客被成功地由Apache加載,但不使用,即使我正確地配置好了一切,如:

<VirtualHost *> 
     ServerAdmin [email protected] 
     ServerName xyz 
     DocumentRoot /var/www/vhosts/default/htdocs/ 
     RailsBaseURI /rails 
</VirtualHost> 

Instad的cgi的乘客 - 模塊用於顯示Rails的應用程序...(如果我從「sites-enabled」文件夾中卸載了cgi.conf和cgi-load,但它不再工作......另一方面,如果我卸載passen ger.load和passenger.conf文件...)

那麼,我該如何強制apache使用乘客來顯示rails站點?

+1

_「......即使我配置一切正常。」 _ **不太** – 2009-11-16 16:02:02

+0

使我想起昆汀·塔倫蒂諾的性格,切斯特拉什行的,在四個房間。 :「越少說明性陳述,越容易在回顧過程中看起來愚蠢。」 :) – jcdyer 2009-11-16 16:21:42

回答

2

假設你已經安裝並在public目錄中的Rails應用程序中使用Apache ...正確配置DocumentRoot需求點的乘客。這裏有一個工作VirtualHost指令:

<VirtualHost *:80> 
    ServerName myapp.local 
    DocumentRoot "/path/to/myapp/public" 
    RailsEnv development 
    <directory "/path/to/myapp/public"> 
    Order allow,deny 
    Allow from all 
    </directory> 
</VirtualHost> 

在此之前,也確保命名的虛擬主機開啓:

NameVirtualHost *:80 

而且還關係到你實際上已經正確配置了客運模式。例如:

LoadModule passenger_module /path/to/ruby/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so 
PassengerRoot /path/to/ruby/gems/1.8/gems/passenger-2.2.5 
PassengerRuby /path/to/bin/ruby 
+0

我已經安裝了其他應用程序,所以我不能將文檔根目錄粘貼到rails-app的公共文件夾中。這就是爲什麼我將「/ rails」鏈接到我的「rails-apps」文件夾中...實際上,rails應用程序的請求和路徑不應該是問題,因爲它們正在工作(當然,不是乘客,而是cgi) – David 2009-11-16 16:11:33

+0

瞭解,請參閱我的其他答案嘗試。 – 2009-11-16 16:29:27

0

您是否在您的rails應用程序中重新配置了relative_url_root?例如,在config/environment.rb

config.action_controller.relative_url_root = "/rails" 
+0

與此我得到一個:未定義的方法'relative_url_root ='爲ActionController :: Base:Class(NoMethodError) – David 2009-11-16 17:03:54

+0

什麼版本的鐵軌? – 2009-11-16 17:50:32